Java Spring WS org.springframework.ws.soap.saaj.SaajSoapEnvelopeException:无法访问信封
我在不同的环境中解开了一个奇怪的spring行为。 以下在本地tomcat 7.0.29上使用Soap UI工作正常,但确实返回下面提到的错误。
servlet.xml中:
classpath:ws.properties com.db.vhs.ws.jaxb.PlacementRequest com.db.vhs.ws.jaxb.PlacementResponse...
scheam.xsd:
第一种方法适用于两种环境,第二种方法(placementRequest)返回:
Apache Tomcat/7.0.29 - Error report HTTP Status 500 - Request processing failed; nested exception is org.springframework.ws.soap.saaj.SaajSoapEnvelopeException: Could not access envelope: Unable to create envelope from given source: ; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source:
type Exception report
message Request processing failed; nested exception is org.springframework.ws.soap.saaj.SaajSoapEnvelopeException: Could not access envelope: Unable to create envelope from given source: ; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source:
description The server encountered an internal error (Request processing failed; nested exception is org.springframework.ws.soap.saaj.SaajSoapEnvelopeException: Could not access envelope: Unable to create envelope from given source: ; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source: ) that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.ws.soap.saaj.SaajSoapEnvelopeException: Could not access envelope: Unable to create envelope from given source: ; nested exception is com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source:
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)javax.servlet.http.HttpServlet.service(HttpServlet.java: 641)javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
根本原因
org.springframework.ws.soap.saaj.SaajSoapEnvelopeException:无法访问信封:无法从给定的源创建信封:; 嵌套exception是com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:无法从给定源创建信封: org.springframework.ws.soap.saaj.SaajSoapMessage.getEnvelope(SaajSoapMessage.java:107) org.springframework.ws.soap.AbstractSoapMessage.getSoapBody(AbstractSoapMessage.java:36) org.springframework.ws.soap.AbstractSoapMessage.getPayloadSource(AbstractSoapMessage.java:46) org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping.getLookupKeyForMessage(PayloadRootAnnotationMethodEndpointMapping.java:57) org.springframework.ws.server.endpoint.mapping.AbstractMethodEndpointMapping.getEndpointInternal(AbstractMethodEndpointMapping.java:56) org.springframework.ws.server.endpoint.mapping.AbstractEndpointMapping.getEndpoint(AbstractEndpointMapping.java:83) org.springframework.ws.server.MessageDispatcher.getEndpoint(MessageDispatcher.java:248) org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:201) org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168) org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88) org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
根本原因
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:无法从给定的源创建信封: com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:114) com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:70) com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:122) org.springframework.ws.soap.saaj.Saaj13Implementation.getEnvelope(Saaj13Implementation.java:169) org.springframework.ws.soap.saaj.SaajSoapMessage.getEnvelope(SaajSoapMessage.java:103) org.springframework.ws.soap.AbstractSoapMessage.getSoapBody(AbstractSoapMessage.java:36) org.springframework.ws.soap.AbstractSoapMessage.getPayloadSource(AbstractSoapMessage.java:46) org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping.getLookupKeyForMessage(PayloadRootAnnotationMethodEndpointMapping.java:57) org.springframework.ws.server.endpoint.mapping.AbstractMethodEndpointMapping.getEndpointInternal(AbstractMethodEndpointMapping.java:56) org.springframework.ws.server.endpoint.mapping.AbstractEndpointMapping.getEndpoint(AbstractEndpointMapping.java:83) org.springframework.ws.server.MessageDispatcher.getEndpoint(MessageDispatcher.java:248) org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:201) org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168) org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88) org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
根本原因
javax.xml.transform.TransformerException:org.xml.sax.SAXParseException:根元素之前的文档中的标记必须格式正确。 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:719) com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313) com.sun.xml.internal.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(EfficientStreamingTransformer.java:393) com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:102) com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:70) com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:122) org.springframework.ws.soap.saaj.Saaj13Implementation.getEnvelope(Saaj13Implementation.java:169) org.springframework.ws.soap.saaj.SaajSoapMessage.getEnvelope(SaajSoapMessage.java:103) org.springframework.ws.soap.AbstractSoapMessage.getSoapBody(AbstractSoapMessage.java:36) org.springframework.ws.soap.AbstractSoapMessage.getPayloadSource(AbstractSoapMessage.java:46) org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping.getLookupKeyForMessage(PayloadRootAnnotationMethodEndpointMapping.java:57) org.springframework.ws.server.endpoint.mapping.AbstractMethodEndpointMapping.getEndpointInternal(AbstractMethodEndpointMapping.java:56) org.springframework.ws.server.endpoint.mapping.AbstractEndpointMapping.getEndpoint(AbstractEndpointMapping.java:83) org.springframework.ws.server.MessageDispatcher.getEndpoint(MessageDispatcher.java:248) org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:201) org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168) org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88) org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
根本原因
org.xml.sax.SAXParseException:根元素之前的文档中的标记必须格式正确。 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231) com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse(SAXParserImpl.java:522) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:636) com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:707) com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313) com.sun.xml.internal.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(EfficientStreamingTransformer.java:393) com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:102) com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:70) com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:122) org.springframework.ws.soap.saaj.Saaj13Implementation.getEnvelope(Saaj13Implementation.java:169) org.springframework.ws.soap.saaj.SaajSoapMessage.getEnvelope(SaajSoapMessage.java:103) org.springframework.ws.soap.AbstractSoapMessage.getSoapBody(AbstractSoapMessage.java:36) org.springframework.ws.soap.AbstractSoapMessage.getPayloadSource(AbstractSoapMessage.java:46) org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping.getLookupKeyForMessage(PayloadRootAnnotationMethodEndpointMapping.java:57) org.springframework.ws.server.endpoint.mapping.AbstractMethodEndpointMapping.getEndpointInternal(AbstractMethodEndpointMapping.java:56) org.springframework.ws.server.endpoint.mapping.AbstractEndpointMapping.getEndpoint(AbstractEndpointMapping.java:83) org.springframework.ws.server.MessageDispatcher.getEndpoint(MessageDispatcher.java:248) org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:201) org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168) org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88) org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note备注 Apache Tomcat / 7.0.29日志中提供了根本原因的完整堆栈跟踪。
Apache Tomcat / 7.0.29
pom.xml中:
org.springframework spring-context 3.1.2.RELEASE org.hibernate hibernate-entitymanager 4.1.2 org.springframework spring-core 3.1.2.RELEASE org.springframework spring-orm 3.1.2.RELEASE org.springframework spring-jdbc 3.1.2.RELEASE org.apache.tomcat tomcat-jdbc 7.0.29 org.springframework.ws spring-ws-core-tiger 1.5.7 org.springframework.ws spring-ws-core 1.5.7 com.sun.xml.messaging.saaj saaj-impl 1.3 xerces xercesImpl 2.8.1 org.apache.ws.commons.schema XmlSchema 1.4.2 javax.xml.bind jaxb-api 2.2 com.oracle ojdbc6 11.2.0.2.0 com.cloudbees.thirdparty vijava 5.0.0 org.slf4j slf4j-log4j12 1.6.4 commons-codec commons-codec 1.6 commons-configuration commons-configuration 1.7 dom4j dom4j 1.6.1 org.hibernate hibernate-core 4.1.2
我读到可能是Web服务器覆盖了maven依赖项? 或者您有任何建议如何解决这个问题? 非常感谢,如果有人可以帮助!
我和你有同样的错误。 我在这里找到了解决方案: http : //mmmsoftware.blogspot.com.es/2009/06/xml-namespace-error-with-spring-ws.html
基本上你必须使用xalan和xercesimpl的上层版本。 我的pom的依赖关系看起来像这样:
... ... jaxen jaxen 1.1.3 compile maven-cobertura-plugin maven-plugins maven-findbugs-plugin maven-plugins xalan xalan xercesImpl xerces ... xalan xalan 2.7.0 jar compile xml-apis xml-apis xerces xercesImpl 2.9.1 jar compile xml-apis xml-apis ...
我希望它对你有所帮助。
我刚刚遇到了同样的问题。
在我的情况下,问题是旧的spring-ws版本与HTTPS一起使用。
升级到最新版(2.1.3)有帮助。
我有这个问题
我创建了在其中写入信封汤的xml文件。并通过curl运行它,如下所示:
curl –header“Content-Type:text / xml; charset = UTF-8”–header“SOAPAction:urn:LoginRequest”–data @ loginRequest.xml http:// …..:8080 / .. ./LoginRequest.asmx
然后它返回上层exception。
就我而言,问题是loginRequest.xml中的额外行
我只是删除额外的行,它修复:)