web-dev-qa-db-ja.com

setPropertyは、SOAPMessageのすべてのサブクラスによってオーバーライドされる必要があります

JBoss 5.1.0のWARアプリケーションにいくつかのWebサービスをデプロイしようとしています。

JAX-WSツールwsgenを使用して、既存のwsdlからソースファイルを作成しました。これにより、要求および応答ラッパーとして機能するサービスファイルと@XmlType注釈付きのクラスが作成されました。

このクラスはJBoss 4.2.3で正常に機能しましたが、JBoss 5.1.0に移行するとこの例外が発生します。

Java.lang.UnsupportedOperationException:setPropertyは、SOAPMessageのすべてのサブクラスによってオーバーライドされる必要があります

私の構成:

  • Windows XP SP3(ただし、VistaでもLinuxでも同じようになります))
  • Sun JDK 1.6.0_17
  • JBoss 5.1.0 GA jdk6の場合

前もって感謝します!

35
Pablo Venturino

間違っている可能性のあるものがいくつかありますので、私の場合に何が助けになったかをお伝えします(あなたに似て、JDK 1.6.0_13を使用していました)。

問題はJARの不一致にあります。まず、JBossがJDK 1.6を使用していることを確認し、Java_HOME envを確認します。変数。次に、クラスがJDK 1.6を使用してコンパイルされていることを確認します。 Eclipseからプロジェクトを実行する場合は、EclipseがJBossをEclipseから実行する場合と同じように、Eclipseが正しいJDKを使用していることを確認してください。

私はあなたがそれを正しく持っていると思うので、いくつかの魔法があります。クライアントの実行しない $ JBOSS_HOME/clientのライブラリを使用しますが、$ JBOSS_HOME/lib/endorsedで提供されるライブラリのみを使用します。明らかに、JPA、EJB、またはサーブレットなど、他のJAX-WSに関連しないAPIを使用している場合、それらをクラスパスに追加できますが、only lib/endorsed JAX-WS JARを使用します。

JBoss 5.1の場合、JBossの以前のバージョンでは他のいくつかのトリックが機能しました。たとえば、Java option -Dsun.lang.ClassLoader.allowArraySyntax = trueまたは/ and -Djava.endorsed.dirs = $ JBOSS_HOME/lib/endorsedクライアントとJBossを起動するとき。

32

JBoss 4.2.2からのアップグレードでも同じ問題が発生し、 JBoss 5.1.0リリースノート で答えが見つかりました。

JBossAS 5.0.0.GAはJava5とJava6の両方でコンパイルできます。 Java5でコンパイルされたバイナリは、プライマリ/推奨バイナリ配布です。厳密なテストが行​​われ、Java 5とa Java 6ランタイム。Java 6次のライブラリをJBOSS_HOME/clientディレクトリからJBOSS_HOME/lib/endorsedディレクトリに手動でコピーする必要があります。これにより、JBossWSでサポートされているJAX-WS 2.0 APIが使用されます。

  • jbossws-native-saaj.jar
  • jbossws-native-jaxrpc.jar
  • jbossws-native-jaxws.jar
  • jbossws-native-jaxws-ext.jar

Java 5(JDK 1.6.0_20で実行)でJBoss 5.1.0ビルドのディストリビューションを使用し、これらのJARを承認済みディレクトリに十分にコピーすることで問題が解決したことを確認しました。 Java 6のためにコンパイルしたバージョン

ただし、JBoss AS 5のJava 6コンパイル済みディストリビューションはまだ実験段階です。

23
phatblat

SAAJ jarとの競合の問題が原因である可能性があります。 JbossSaaj jarを{Jboss_HOME}/LIBから{JBOSS_HOME}/lib/endorsedにコピーします。これが問題の解決に役立つことを願っていますが、

7
user447390

JBossオプションが承認済みのライブラリを指している状態でjvmを起動してください。これは、JBossを使用してEclipseからWTPを起動する場合、デフォルトでは設定されませんが、コマンドラインからJBossを起動する場合です。

起動構成のVM引数に以下を追加できます。

-Djava.endorsed.dirs="${JBOSS_HOME}\jboss-as\lib\endorsed"
4
user538000

jarファイルをjboss/lib/endorsedフォルダーに移動してみてください

jbossws-native-jaxws.jar
jbossws-native-jaxrpc.jar
jbossws-native-saaj.jar
jbossws-native-saaj.jar
2
user1397770

私のプロジェクトは単に以下に基づいていました:

  • CXF 2.5.0(SOAP WebServiceコンシューマー)
  • WARアセンブリ(EARなし)
  • jboss-webはありません
  • jboss-classloadingはありません
  • jboss/lib/endorsedに変更はありません(xalan、serializer、xercesImplのみ)
  • jboss-4.2.1.GA + JDK 1.6で実行

私にとってうまくいったのは、CXFの隣にそれらのMaven依存関係を追加することでした:

    <dependency>
        <groupId>javax.xml.ws</groupId>
        <artifactId>jaxws-api</artifactId>
    </dependency>
    <dependency>
        <groupId>com.Sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
    </dependency>
    <dependency>
        <groupId>com.Sun.xml.ws</groupId>
        <artifactId>jaxws-tools</artifactId>
    </dependency>
    <dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>woodstox-core-asl</artifactId>
    </dependency>
    <dependency>
        <groupId>com.Sun.xml.messaging.saaj</groupId>
        <artifactId>saaj-impl</artifactId>
    </dependency>

それが役立つことを願っています!

1
Donatello

これはこの問題へのリンクです: https://issues.jboss.org/browse/JBWS-2418

0
Vadzim

Jboss AS 4.3を使用します。私の場合、「deploy」フォルダーから「jbossws.sar」を削除しました。

この問題を参照してください: https://issues.jboss.org/browse/JBWS-2821

0
Tiago PC

クライアントアプリケーションの実行中にクライアントでこのエラーが発生した場合、この answer の手順に加えて、同様の手順に従う必要があります。

  1. JVMのどのインスタンスがアプリケーションを実行しているかを判断します。私の場合、JDKを使用するスタンドアロンアプリケーションとJREを使用するアプレットがありました。これは/path/jre/bin/のような場所になります

  2. このjarを answer からpath/jre/lib/endorsedに追加します。 endorsedディレクトリを作成する必要がありました。

これは、VM言語のデフォルトの前にjboss固有の実装をロードするようにJavaに伝えます。これはbootstrapクラスローダーで発生します、クラスパス内のjarがロードされるかなり前。

0
Steve Jackson

Webアプリのlibフォルダーにsaaj-implを追加すると、このエラーが修正されました。 JBoss 4.2.3とCXF 2.4.10を使用しています。

0
NVN

Cxfディストリビューションから必要なlib(私の場合はsaaj-impl)をwarにコピーし、次のコンテンツの/WEB-INF/jboss-classloader.xmlファイルを使用してjbossクラスローダーの分離を有効にしました。


<classloading xmlns="urn:jboss:classloading:1.0"
    domain="MyDomain"
    export-all="NON_EMPTY"
    import-all="true">
</classloading>

これが誰かに役立つことを願っています。

0
jnr

私のサーバー設定はJboss AS 4.2.1 GAで、以下のように動作します。

Lib\endorsedで使用したライブラリ。

  • JAXWS2.1.1_20070501
  • jbossws-native-jaxrpc
  • jbossws-native-jaxws
  • jbossws-native-jaxws-ext
  • jbossws-native-saaj
  • シリアライザー
  • シャラン
  • xercesImpl
0
volkan