繁体   English   中英

Jboss EAP6和Weblogic 11 XML响应之间的区别

[英]Differences between Jboss EAP6 and Weblogic 11 XML responses

我在JBoss EAP 6中部署了Web服务时遇到问题。我有一个war文件,其中war包含WS,但是该war最初是在Weblogic 11 AS中开发和测试的; 但一切正常,但老板说我的战争可以部署在他已安装在其他计算机上的其他服务器(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使用它自己的实现。

我读到要向战争档案中添加一个xml文件(jboss-deployment-structure.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实现。 干杯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM