Как я смешиваю типы кодировки сообщения (Text/MTOM) в Запросе и Ответе клиентского приложения веб-сервиса с помощью WCF (или WSE 3)?

Решено, для удаления тега Hash # To URL, используя Jhipster и React [Spring + ReactJs]. Я использую ссылку @ Gaël Marziou сказал мне.

следует за изменениями:

== React ==

1 - com / mycompany / myapp / src / main / webapp / app / app.tsx

import { BrowserRouter as Router } from 'react-router-dom'; 
// import { HashRouter as Router } from 'react-router-dom';
[ 119] 2 - com / mycompany / myapp / src / main / webapp / index.html

<!-- <base href="./"/> -->
<base href="/"/> 

3 - com / mycompany / myapp / webpack / webpack.prod.js

},
  devServer: {
    historyApiFallback: true, /*insert this line - only use for develop*/
    stats: options.stats,
    hot: true,
    contentBase: './build/www',
    proxy: [{
      context: [
...
[ 1111] == JAVA ==

4 - com / mycompany / myapp / src / main / java / br / com / MyApp / config / WebConfigurer.java

@Bean 
    public Html5RouteFilter html5RouteFilter() { 
        return new Html5RouteFilter(); 
    } 

5 - com /mycompany/myapp/src/main/java/br/com/MyApp/web/Html5RouteFilter.java ВАМ НУЖНО СОЗДАТЬ ЭТОТ ФАЙЛ

пакет com.mycompany.myapp.web;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.filter.OncePerRequestFilter;

import javax.servlet.FilterChain;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.regex.Pattern;

/**
 * Filter that distinguishes between client routes and server routes  when you don't use '#' in client routes.
 */
public class Html5RouteFilter extends OncePerRequestFilter {

    private Logger log = LoggerFactory.getLogger(getClass());


    // These are the URIs that should be processed server-side
    private static final Pattern PATTERN = Pattern.compile("^/((api|content|i18n|management|swagger-ui|swagger-resources)/|error|h2-console|swagger-resources|favicon\\.ico|v2/api-docs).*");

    @Override
    protected void doFilterInternal(HttpServletRequest request,
                                    HttpServletResponse response,
                                    FilterChain filterChain)
        throws ServletException, IOException {
        if (isServerRoute(request)) {
            filterChain.doFilter(request, response);
        } else {
            RequestDispatcher rd = request.getRequestDispatcher("/");
            rd.forward(request, response);
        }
    }

    protected static boolean isServerRoute(HttpServletRequest request) {
        if (request.getMethod().equals("GET")) {
            String uri = request.getRequestURI();
            if (uri.startsWith("/app")) {
                return true;
            }
            return PATTERN.matcher(uri).matches();
        }
        return true;
    }
}
[1115 ] === КОНЕЦ == теперь будь счастлив

13
задан komma8.komma1 13 November 2008 в 05:51
поделиться

4 ответа

Yes you can send a text message and get an mtom reply(or vise versa)with WCF.

see...

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/480f1bc4-1fc4-40e9-a2ed-efcf3009d6ef

8
ответ дан 2 December 2019 в 00:59
поделиться

Я исследовал немного об этом, и плохие новости - то, что с точки зрения WCF запрос и ответ ДОЛЖНЫ использовать тот же enconding. Так да ответ выше довольно корректен. Необходимо организовать с поставщиком услуг для включения MTOM и по запросу и по ответу. Запрос MTOM не окажет влияния на его приложение кроме изменения типа пантомимы SOAP, насколько я знаю.

2
ответ дан 2 December 2019 в 00:59
поделиться

Вот ответ, я вошел в другой форум. это в основном говорит, что проблема с Axis2 на стороне Java. К сожалению, это не находится под моим контролем в этом случае.

cherry111 - Отправленный в субботу, 15 ноября 2008 0:52:08

Вы должны изменить конфигурацию на своем веб-сервисе AXIS2. Можно знать, что можно включить MTOM в двух местах. Каждый находится в service.xml, и другой находится в axis.xml. Java рекомендует установить его в service.xml, но клиенту .net wse3.0 не нравится он. При включении MTOM в axis.xml он должен работать.

1
ответ дан 2 December 2019 в 00:59
поделиться

Да, WCF имеет это обязательное требование и НЕТ, потому что вы можете обойти его, как я сделал.

Я написал MultiContentTypeMessageEncoder, который инкапсулирует 3 различных кодировщика text, mtom и fi. Я также планирую включить кодировщик gpb, если это будет возможно и если на то будет веская причина, в будущем

.
1
ответ дан 2 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: