【问题标题】:java saaj Exceptionjava saaj 异常
【发布时间】:2011-10-17 13:16:18
【问题描述】:

我尝试使用

从字符串创建一个肥皂信封
SOAPPart().setContent(Source).

我尝试从同一条消息中获取 SOAPBody,但它抛出异常

SEVERE: SAAJ0511: Unable to create envelope from given source
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:114)
    at com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:70)
    at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:122)
    at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1253)
    at mytransactions.Test.main(Test.java:107)
Caused by: javax.xml.transform.TransformerException: XML-22103: (Fatal Error) DOMResult can not be this kind of node.
    at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:883)
    at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:353)
    at com.sun.xml.internal.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(EfficientStreamingTransformer.java:393)
    at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:102)
    ... 4 more

CAUSE:

javax.xml.transform.TransformerException: XML-22103: (Fatal Error) DOMResult can not be this kind of node.
    at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:883)
    at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:353)
    at com.sun.xml.internal.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(EfficientStreamingTransformer.java:393)
    at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:102)
    at com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:70)
    at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:122)
    at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1253)
    at mytransactions.Test.main(Test.java:107)

CAUSE:

javax.xml.transform.TransformerException: XML-22103: (Fatal Error) DOMResult can not be this kind of node.
    at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:883)
    at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:353)
    at com.sun.xml.internal.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(EfficientStreamingTransformer.java:393)
    at com.sun.xml.internal.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:102)
    at com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:70)
    at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:122)
    at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1253)
    at mytransactions.Test.main(Test.java:107)

如何解决这个问题?

【问题讨论】:

  • 这个问题是因为 _oracle.xml.jaxp.JXTransformer.transform。我无法删除该 jar 文件。如何强制我的应用程序使用默认的 xml 库?

标签: java soap saaj


【解决方案1】:

服务 API 将在运行时可用的 jar 中的 META-INF/services/javax.xml.transform.TransformerFactory 文件中查找类名。我使用 jvm -D 选项覆盖了这个属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多