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) を war アーカイブに追加することについて読み、次のように 1 つの 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 の内部クラスを使用できます。結果は同じですが、アイデアはありますか?