gpt4 book ai didi

java - Jboss EAP6 和 Weblogic 11 XML 响应之间的差异

转载 作者:行者123 更新时间:2023-12-01 04:23:42 25 4
gpt4 key购买 nike

我在 JBoss EAP 6 中部署的 Web 服务出现问题。我有一个war文件,该war包含一个WS,但是,该war最初是在Weblogic 11 AS中开发和测试的;一切都很好但是我的老板说我的war可以部署在他安装在其他计算机上的其他服务器(JBoss)上。

一切正常,但是在响应中,日期不同,我的意思是,在Weblogic中,它看起来像这样:

 <birthday class="com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl"> 
<year>1952</year>
<month>4</month>
<day>17</day>
<timezone>-360</timezone>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
<fractionalSecond>0.000</fractionalSecond>
</birthday>

因此,在 JBoss EAP 6 中,日期会显示更多字段,如下所示:

<birthday class="org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl"> 
<orig__year>1944</orig__year>
<orig__month>3</orig__month>
<orig__day>1</orig__day>
<orig__hour>0</orig__hour>
<orig__minute>0</orig__minute>
<orig__second>0</orig__second>
<orig__fracSeconds>0.000</orig__fracSeconds>
<orig__timezone>-300</orig__timezone>
<year>1944</year>
<month>3</month>
<day>1</day>
<timezone>-300</timezone>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
<fractionalSecond>0.000</fractionalSecond>
</birthday>

我的问题是,如何切换此数据类型的反/序列化器的实现?看起来,Weblogic 使用 JDK 内部类来完成这项工作,但 JBoss 使用它自己的实现。

我读到要向 war 存档添加一个 xml 文件(jboss-deployment-struct.xml),我集成了一个 xml,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclusions>
<module name="org.apache.xerces" />
</exclusions>
<dependencies>
<module name="sun.jdk" >
</module>
<system>
<paths>
<path name="com/sun/org/apache/xerces/internal/jaxp/datatype"/>
</paths>
</system>
</dependencies>
</deployment>
</jboss-deployment-structure>

如果我理解得很好,该 xml 避免使用 JBoss XML 实现 (xerces),那么我可以使用 JDK 的内部类;但结果是一样的,有什么想法吗?

最佳答案

我以这种形式解决我的问题:

我在此路径中更改了默认的 xerces 实现

{JBOSS_HOME}\modules\system\layers\base\org\apache\xerces\main

我添加了两个文件:jaxp-api-1.4.5.jar 和 jaxp-ri-1.4.5。

在 module.xml 中,我对声明为资源根的 jar 进行了更改,如下所示:

<module xmlns="urn:jboss:module:1.1" name="org.apache.xerces">
<resources>
<!--<resource-root path="xercesImpl-2.9.1-redhat-4.jar"/> -->
<resource-root path="jaxp-ri-1.4.5.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>

现在,我的 xml 附带了所需的 XMLGregorianCalendar 实现。干杯。

关于java - Jboss EAP6 和 Weblogic 11 XML 响应之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18704766/

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