2015-03-30 6 views
0

Я пытаюсь подключиться к веб-службе, используя весну/мыло/wsdl. Я получаю трассировку стека, как это:[JAVA Spring SOAP WSDL]

Exception in thread "main" org.springframework.ws.soap.SoapMessageCreationException: Could not create message from InputStream: Unable to create envelope from given source: ; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source: 
    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.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:608) 
    at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555) 
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390) 
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:383) 
    at com.arek.soapallegrotest.WsSearchClient.doLogin(WsSearchClient.java:60) 
    at com.arek.soapallegrotest.WsSearchClient.doSearchResponse(WsSearchClient.java:81) 
    at com.arek.soapallegrotest.SpringMain.main(SpringMain.java:24) 
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source: 
    at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:117) 
    at com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:69) 
    at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:128) 
    at org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:189) 
    ... 9 more 
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source because the root element is not named "Envelope" 
    at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.lookForEnvelope(SOAPPartImpl.java:154) 
    at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:121) 
    at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(Envel 

opeFactory.java:110) 
    ... 12 more 
2015-03-30 16:30:26.747 INFO 12079 --- [  Thread-1] s.c.a.AnnotationConfigApplicationContext : Closing org.spring[email protected]3cb1ffe6: startup date [Mon Mar 30 16:30:24 CEST 2015]; root of context hierarchy 

Я использовал этот учебник: https://spring.io/guides/gs/consuming-web-service/#initial узнать мой сам.

Я нашел информацию о том, что у меня что-то не так с пространством имен?

пс. извините за мой английский

+0

ли вы найти решение? – elysch

+0

Я не нашел решения своей проблемы. Я использовал jaxws без весны для webserivices, и он отлично работает. –

ответ

0

У меня была та же проблема. Я не знаю точно, что является причиной этого в ваших источниках, потому что вы не добавили никаких конкретных informatcion, но я могу сказать, что начал давать эту ошибку в моем проекте, когда я добавил FOP к моему ПОМ:

<dependency> 
     <groupId>org.apache.xmlgraphics</groupId> 
     <artifactId>fop</artifactId> 
     <version>1.1</version> 
     <!-- some exclusions needed because of inexistent "avalon" packages in maven repositories --> 
    </dependency> 

Это случалось с каждой версией fop, которую я мог найти через maven.

Я нашел solution here. По-видимому, xalan и xerces, включенные в fop, нуждались в обновлении.

Я не доволен этим решением, но он работает. Я оставил некоторые исключения, я не уверен, что они нужны или могут повредить что-то еще, потому что крайний срок подходит очень быстро (ха-ха-ха). Я займусь этим позже (или надеюсь, что кто-то может прокомментировать их).

Здесь я добавить свой фрагмент POM:

<dependency> 
     <groupId>org.apache.xmlgraphics</groupId> 
     <artifactId>fop</artifactId> 
     <version>1.1</version> 
     <exclusions> 
      <!-- 
       Following avalon-framework versions that come 
       as dependencies for fop 1.1 are not found 
       through maven: 

       See: https://issues.apache.org/jira/browse/FOP-2151 
      --> 
      <exclusion> 
       <groupId>org.apache.avalon.framework</groupId> 
       <artifactId>avalon-framework-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.avalon.framework</groupId> 
       <artifactId>avalon-framework-impl</artifactId> 
      </exclusion> 
      <!-- 
       Without following exclusions I get the following 
       exception when trying to access another web service: 
       2015-04-24 13:48:25,048 ERROR [http-nio-8084-exec-2] (CfdiController.java:152) - 
       Error while uploading. org.springframework.ws.soap.SoapMessageCreationException: 
       Could not create message from InputStream: Unable to create envelope from given 
       source: ; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: 
       Unable to create envelope from given source: 
       at org.springframework.ws.soap.saaj.SaajSoapMessageFactory.createWebServiceMessage(SaajSoapMessageFactory.java:216) 
       ~[spring-ws-core-2.2.0.RELEASE.jar:2.2.0.RELEASE] 

       See: https://stackoverflow.com/a/13156775/2796922 
      --> 
      <exclusion> 
       <artifactId>maven-cobertura-plugin</artifactId> 
       <groupId>maven-plugins</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>maven-findbugs-plugin</artifactId> 
       <groupId>maven-plugins</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xalan</artifactId> 
       <groupId>xalan</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xercesImpl</artifactId> 
       <groupId>xerces</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <!-- 
     These avalon dependencies are found in maven: 
    --> 
    <dependency> 
     <groupId>avalon-framework</groupId> 
     <artifactId>avalon-framework-api</artifactId> 
     <version>4.2.0</version> 
    </dependency> 
    <dependency> 
     <groupId>avalon-framework</groupId> 
     <artifactId>avalon-framework-impl</artifactId> 
     <version>4.2.0</version> 
    </dependency> 

    <!-- 
     With these versions is no longer raised the 
     "Unable to create envelope from given source" 
     exception explained before 
    --> 
    <dependency> 
     <groupId>xalan</groupId> 
     <artifactId>xalan</artifactId> 
     <version>2.7.0</version> 
     <type>jar</type> 
     <scope>compile</scope> 
     <exclusions> 
      <exclusion> 
       <artifactId>xml-apis</artifactId> 
       <groupId>xml-apis</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>xerces</groupId> 
     <artifactId>xercesImpl</artifactId> 
     <version>2.9.1</version> 
     <type>jar</type> 
     <scope>compile</scope> 
     <exclusions> 
      <exclusion> 
       <artifactId>xml-apis</artifactId> 
       <groupId>xml-apis</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

Надеется, что это помогает.

0

У меня была такая же проблема и причина была в линии, как это:

WebServiceTemplate template = new WebServiceTemplate(messageFactory()); 
...  
template.setDefaultUri("http://host:2121/portal/service?wsdl"); 

решение было удалить ?wsdl