JBoss EAP 6.1.0.Beta1 アプリケーション サーバーにデプロイされた JAX-WS Web サービスの JAXB プロバイダーとして EclipseLink MOXy を使用しようとしています。今のところ、ここjavax.xml.ws.Provider
で説明されているように実装し、Web サービスで使用される実装とドメイン クラスを含むパッケージにファイルを配置しました。このファイルの内容は次のとおりです。jaxb.properties
Provider
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
サービスを含む Web アプリケーションをデプロイしようとすると、次のエラーがログに記録されます。
@XmlValue is not allowed on a class that derives another class
私の場合、MOXy を JAXB プロバイダーとして使用する主な理由は@XmlValue
、サブクラスでアノテーションを使用できるようにするためです。このエラーは、MOXy を使用するテスト アプリケーションで Web サービスに使用されるのと同じクラスでアンマーシャリングしようとすると発生しません。さらに、org.eclipse.persistence
スタックトレースにはパッケージとそのサブパッケージのクラスはなく、com.sun.xml.bind.v2
代わりにクラスのみがあります。どうやら、Web アプリケーションのデプロイ時に MOXy は使用されません。必要な Maven アーティファクトorg.eclipse.persistence
はすべて WAR ファイルにあります。
$ jar tf my-app.war | grep org.eclipse.persistence
WEB-INF/lib/org.eclipse.persistence.antlr-2.5.0.jar
WEB-INF/lib/org.eclipse.persistence.asm-2.5.0.jar
WEB-INF/lib/org.eclipse.persistence.moxy-2.5.0.jar
WEB-INF/lib/org.eclipse.persistence.core-2.5.0.jar
私は何を間違っていますか?私が理解している限り、Provider
Web サービスが呼び出されたときに実行時に呼び出されます。しかし、デプロイ時にエラーが発生します。に加えて何かを再実装する必要がありProvider
ますか?