Spring boot Spring与Spring boot 1.4.0集成。获取错误

Spring boot Spring与Spring boot 1.4.0集成。获取错误,spring-boot,spring-integration,Spring Boot,Spring Integration,我从Spring boot 1.2.3升级到了1.4.0,还附带了Spring集成的依赖项,即4.3.1 我正在发送JSON内容,但请求提交时出错。以前,它在Spring boot 1.2.3和Spring integration 4.1.2中运行良好 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent

我从Spring boot 1.2.3升级到了1.4.0,还附带了Spring集成的依赖项,即4.3.1

我正在发送JSON内容,但请求提交时出错。以前,它在Spring boot 1.2.3和Spring integration 4.1.2中运行良好

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.RELEASE</version>
</parent>


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-ws</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-xml</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-file</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-http</artifactId>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0.1</version>
    </dependency>

    <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.0.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
    </dependency>


原因:com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:无效内容类型:application/json。这是一条错误消息而不是SOAP响应吗?
位于com.sun.xml.internal.messaging.saaj.soap.MessageImpl.identificationContentType(MessageImpl.java:655)
位于com.sun.xml.internal.messaging.saaj.soap.MessageImpl.(MessageImpl.java:301)
位于com.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl.(Message1_1Impl.java:65)
位于com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:63)

Spring boot
1.2.3
没有WebService(SOAP)支持。现在我们有了
WebServicesAutoConfiguration
,因为
1.4.0
。在那里您可以找到以下代码:

String path = this.properties.getPath();
String urlMapping = (path.endsWith("/") ? path + "*" : path + "/*");
ServletRegistrationBean registration = new ServletRegistrationBean(servlet,
            urlMapping);
WebServicesProperties
中遇到意外的默认值:

@NotNull
@Pattern(regexp = "/[^?#]*", message = "Path must start with /")
private String path = "/services";
因此,新创建的
MessageDispatcherServlet
会拦截您的所有请求,因为您希望它们位于
path=“/services/test”

如果您对应用程序中的SOAP服务器端不感兴趣,可以从自动配置中排除
WebServicesAutoConfiguration


< P> >考虑更改服务URL或为<代码> Spring .WebServices .PATH < /Cult>应用程序属性> < /P>但ARTEM指定其他内容,默认情况下将其映射到/Services有特殊原因。而且,我检查过的任何文件都没有提到它。我也尝试了第二种方法,通过更改服务URL,它起了作用。您将在这里找到有关web服务的信息
Error : 
2016-12-20 15:06:14 [http-nio-8080-exec-1] DEBUG o.s.w.t.h.WebServiceMessageReceiverHandlerAdapter : Accepting incoming [org.springframework.ws.transport.http.HttpServletConnection@74518c78] at [http://localhost:8080/services/test]
2016-12-20 15:06:14 [http-nio-8080-exec-1] ERROR c.s.xml.internal.messaging.saaj.soap : SAAJ0537: Invalid Content-Type. Could be an error message instead of a SOAP message
2016-12-20 15:06:14 [http-nio-8080-exec-1] DEBUG o.s.w.t.h.MessageDispatcherServlet : Could not complete request
org.springframework.ws.soap.SoapMessageCreationException: Could not create message from InputStream: Invalid Content-Type:application/json. Is this an error message instead of a SOAP response?; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:application/json. Is this an error message instead of a SOAP response?
    at org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:216)
    at org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:60)
    at org.springframework.ws.transport.AbstractWebServiceConnection.receive(AbstractWebServiceConnection.java:92)
    at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:87)
    at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:61)
    at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:293)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:application/json. Is this an error message instead of a SOAP response?
at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.identifyContentType(MessageImpl.java:655)
at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:301)
at com.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl.<init>(Message1_1Impl.java:65)
at com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:63)
String path = this.properties.getPath();
String urlMapping = (path.endsWith("/") ? path + "*" : path + "/*");
ServletRegistrationBean registration = new ServletRegistrationBean(servlet,
            urlMapping);
@NotNull
@Pattern(regexp = "/[^?#]*", message = "Path must start with /")
private String path = "/services";