2015-01-23 3 views
0

비누 UI에서 wsdl 파일을로드하면 실행 후 다음과 같은 오류가 발생합니다.이 오류는 XML 마법사에서 발생합니다. 이름과 성별에 일부 값을 지정하면 오류가 표시됩니다. soap ui 응답 오류

이것은 wisdal 수입

를 한 후 모양입니다 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;}} 

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> 

입니다 0

<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> 
+0

콘텐츠 유형을 text/xml로 변경하십시오. –

+0

@NaveenRamawat xml 및 spring 웹 서비스를 처음 사용합니다. 콘텐츠 유형을 추가해야하는 위치를 알려주시겠습니까? –

+0

내가 잘못하지 않았다면 SoapUI를 통해 요청을 보내고, soapui에서는 요청을하는 곳에서 미디어 유형 드롭 다운을 볼 수 있습니다. –

답변

0

나는 WSDL이 표시되지 않습니다, 그러나 그것은 요구하는 것 같다 SOAP 1.2 계약 (따라서 응용 프로그램/비누 + XML 헤더와 http://www.w3.org/2003/05/soap-envelope 네임 스페이스)하지만, 실제 서비스로 WSDL을 인식되는 SOAP-UI처럼 보인다 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 요청을 재생성하여이 문제를 해결할 수 있습니다.