在客户端存根中处理 Axis 2 Web 服务时,我正在运行以下异常。该问题仅发生在 WebLogic Server 上。服务(aar 文件)在 Tomcat Server 上的开发中工作正常,但在 WebLogic Server 上的生产中抛出以下错误。服务是使用 Axis 2.0 版本 1.6.2 构建的。我不确定为什么它们在 Tomcat 上运行良好,但在 WebLogic 版本 10.3.5 上运行时出现问题。这曾经在 Axis 2.0 V 1.4 上正常工作。
myClientClass.java 上的异常:
org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ':' (code 58) excepted space, or '>' or "/>" at javax.xml.stream.SerializableLocation@89d089d
我在 WebLogic 启动日志中看到以下警告。
[WARN] Weblogic's StAX implementation is unsupported and some Axiom features will not work as expected! Please use Woodstox instead.
我在网上找到了一些我需要使用 Woodstox 的参考资料。所以,我将以下内容添加到webLogicStart.sh
-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory
-Djavax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory
-Djavax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory
以及调用 Web 服务之前的 stubClass。
_operationClient.getOptions().setProperty("javax.xml.stream.XMLInputFactory",
"com.ctc.wstx.stax.WstxInputFactory");
_operationClient.getOptions().setProperty("javax.xml.stream.XMLOutputFactory",
"com.ctc.wstx.stax.WstxOutputFactory");
_operationClient.getOptions().setProperty("javax.xml.stream.XMLEventFactory",
"com.ctc.wstx.stax.WstxEventFactory");
下面是 weblogic-application.xml。
<wls:package-name>com.ctc.wstx.*</wls:package-name>
<wls:package-name>javax.xml.*</wls:package-name>
<wls:package-name>org.apache.*</wls:package-name>
我仍然遇到同样的问题。对此的任何帮助都将受到高度赞赏。