gpt4 book ai didi

java - XMLBeans-xsi :type stripped using Axis2 and Tomcat?

转载 作者:行者123 更新时间:2023-11-28 23:54:29 26 4
gpt4 key购买 nike

我是 XMLBeans 的新手,一直在尝试使用它来创建 XML 文档作为 axis2 网络服务的一部分。当我将代码作为标准 Java 应用程序或标准 servlet 运行时,XML 已正确生成:

<?xml version="1.0" encoding="UTF-8"?>
<c:BroadsoftDocument protocol="OCI" xmlns:c="C">
<sessionId>000000001</sessionId>
<command xsi:type="AuthenticationRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<userId>admin</userId></command>
</c:BroadsoftDocument>

但是,当完全相同的代码在 servlet 中的 Axis2 和 Tomcat 下运行时,我得到:

<?xml version="1.0" encoding="UTF-8"?>
<c:BroadsoftDocument protocol="OCI" xmlns:c="C">
<sessionId>000000001</sessionId>
<command>
<userId>admin</userId></command>
</c:BroadsoftDocument>

这当然是无效的——当代码在 Tomcat 下运行时,“command”元素的 xsi:type 被去除。

有没有人对我可能做错的事情有任何建议,这些错误只会在 Axis2 下运行时导致此类问题?起初我以为这是 Tomcat 的问题,但在创建了一个通用的 servlet 并运行了完全相同的代码之后,我没有遇到任何问题。我试过使用 XMLBeans 的 XMLOptions,但似乎无法解决问题。我目前使用的选项是:

xmlOptions = new XmlOptions();
xmlOptions.setCharacterEncoding("UTF-8");
xmlOptions.setUseDefaultNamespace();
xmlOptions.setSaveAggressiveNamespaces();
xmlOptions.setSavePrettyPrint();

最佳答案

原来问题出在 Axis2 使用的类加载器顺序上。这已被修补,功能在此处描述:

http://marc2.theaimsgroup.com/?l=axis-cvs&m=115946726426905&w=3

长话短说,要解决此问题,您需要为 Axis2 项目编辑“services.xml”并添加:

<parameter name="ServiceTCCL">composite</parameter>

关于java - XMLBeans-xsi :type stripped using Axis2 and Tomcat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2328670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com