肥皂ui响应错误

时间:2015-01-23 09:49:08

标签: java xml soap xsd wsdl

当我在soap ui中加载wsdl文件时,我收到类似下面的错误,并且在运行之后在xml向导中给出了这样的错误。给名称和性别提供一些值也显示错误。

这是xsd文件

<xsd:element name="helloworldRequest">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="name" type="string" maxOccurs="1" minOccurs="1" />
            <xsd:element name="gender" type="string" maxOccurs="1"
                minOccurs="1" />
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

<xsd:element name="helloworldResponse">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="greetings" type="string" maxOccurs="1" minOccurs="1" />
        </xsd:sequence>
    </xsd:complexType>

</xsd:element>

Helloendpoint.java

public class HelloEndPoint {
@Autowired      
private static final String NAMESPACE_URI = "http://com.output.jaxBclasses";
private static final String LOCALPART = "helloworldRequest";
@PayloadRoot(localPart = LOCALPART, namespace = NAMESPACE_URI)
@ResponsePayload
public String handleStudentRequest(@RequestPayload HelloworldRequest request1) throws TransformerConfigurationException
{
    String gender=(String) request1.getGender();
    String name=(String) request1.getName();
       System.out.println(gender);
       System.out.println(name);
       String output="Hello"+name;
    System.out.println(output);
    return output;}}

这是智慧导入后的照顾

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:com="http://com.output.jaxBclasses">
   <soap:Header/>
   <soap:Body>
      <com:helloworldRequest>
         <com:name>?</com:name>
         <com:gender>?</com:gender>
      </com:helloworldRequest>
   </soap:Body>
</soap:Envelope>

运行此操作后,我收到如下错误。

<html><head><title>Apache Tomcat/7.0.57 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - Request processing failed; nested exception is org.springframework.ws.soap.SoapMessageCreationException: Could not create message from InputStream: Unable to internalize message; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message</h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u>Request processing failed; nested exception is org.springframework.ws.soap.SoapMessageCreationException: Could not create message from InputStream: Unable to internalize message; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message</u></p><p><b>description</b> <u>The server encountered an internal error that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.ws.soap.SoapMessageCreationException: Could not create message from InputStream: Unable to internalize message; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
</pre></p><p><b>root cause</b> <pre>org.springframework.ws.soap.SoapMessageCreationException: Could not create message from InputStream: Unable to internalize message; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
    org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:204)
    org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:58)
    org.springframework.ws.transport.AbstractWebServiceConnection.receive(AbstractWebServiceConnection.java:90)
    org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:86)
    org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
    org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:222)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
</pre></p><p><b>root cause</b> <pre>com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
    com.sun.xml.internal.messaging.saaj.soap.MessageImpl.init(MessageImpl.java:515)
    com.sun.xml.internal.messaging.saaj.soap.MessageImpl.&lt;init&gt;(MessageImpl.java:304)
    com.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl.&lt;init&gt;(Message1_1Impl.java:67)
    com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:61)
    org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:182)
    org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:58)
    org.springframework.ws.transport.AbstractWebServiceConnection.receive(AbstractWebServiceConnection.java:90)
    org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:86)
    org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
    org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:222)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
</pre></p><p><b>root cause</b> <pre>com.sun.xml.internal.messaging.saaj.soap.SOAPVersionMismatchException: Cannot create message: incorrect content-type for SOAP version. Got: application/soap+xml; charset=UTF-8 Expected: text/xml
    com.sun.xml.internal.messaging.saaj.soap.MessageImpl.init(MessageImpl.java:382)
    com.sun.xml.internal.messaging.saaj.soap.MessageImpl.&lt;init&gt;(MessageImpl.java:304)
    com.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl.&lt;init&gt;(Message1_1Impl.java:67)
    com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:61)
    org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:182)
    org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:58)
    org.springframework.ws.transport.AbstractWebServiceConnection.receive(AbstractWebServiceConnection.java:90)
    org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:86)
    org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
    org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:222)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/7.0.57 logs.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.57</h3></body></html>

1 个答案:

答案 0 :(得分:0)

我没有看到WSDL,但看起来SOAP-UI将WSDL识别为SOAP 1.2契约(因此是application / soap + xml头和http://www.w3.org/2003/05/soap-envelope命名空间)但实际服务似乎需要SOAP 1.1请求(具有text / xml内容类型和http://schemas.xmlsoap.org/soap/envelope/请求命名空间)。

您可以在此处查看比较:http://www.herongyang.com/Web-Services/Perl-SOAP-1-2-Request-Differences-SOAP-1-1-and-1-2.html

如果这是问题,那么错误在于通过WSDL通知错误合同的服务提供商。您可以通过在本地复制WSDL并对其进行修改以使其成为SOAP 1.1协定并重新生成SOAP-UI请求来解决此问题。