2

JAXBプロバイダーとしてEclipseLinkMOXyを使用しようとしていますが、まだ問題があります。

私はすでにjaxb.propertiesErrorクラスと同じパッケージにファイルを入れています。それでも、Webサービスを呼び出すと、次のエラーが発生します。

エラー500org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:タイプがbr.services.modelの応答オブジェクトのMessageBodyWriterが見つかりませんでした。メディアタイプのエラー:application / xml; charset ="UTF-8"

Errorクラスで次のコードを実行した場合

public static void main(String[] args) throws JAXBException
{
    System.out.println(JAXBContext.newInstance(Error.class).getClass());
}

私はこれを取得します:クラスorg.eclipse.persistence.jaxb.JAXBContext

だから誰かが私を助けてくれませんか?

4

1 に答える 1

1

注: 私はEclipseLink JAXB (MOXy)のリーダーであり、JAXB (JSR-222)エキスパート グループのメンバーです。

eclipselink.jar の場所

次の場所に eclipselink.jar があることを確認する必要があります ( http://wiki.eclipse.org/EclipseLink/Examples/JPA/JBoss_Web_Tutorial#Specific_Serverを参照) 。

$JBOSS_HOME/server/default/lib

jaxb.properties

ファイルがドメイン モデル (クラス)jaxb.propertiesと同じパッケージにある必要があることは正しいです。Error次のエントリがあることを確認する必要があります ( http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.htmlを参照)。

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

TopLinkのバージョン

RESTEasy が独自の JAXB リファレンス実装拡張機能に依存している可能性があります。私たちが知っているすべてのもののサポートを MOXy に追加したので、最新バージョンの EclipseLink を使用していることを確認してください。以下のリンクから入手できる EclipseLink 2.4.1 を使用することをお勧めします。

MessageBodyReader/MessageBodyWriter

プラグ可能な JAXB 実装をサポートするように RESTEasy が (十分に) 作成されていない可能性があります。この場合、MessageBodyReader/MessageBodyWriterを作成して MOXy を活用できます。以下は、モデルとして使用できる JSON バインディング プロバイダーとして MOXy を使用するために作成した例です。

MOXy が事前に構築されたMessageBodyReader/で出荷されMessageBodyWriterて JSON バインディングを有効にするのと同じように (「JAX-RS JSON プロバイダーとしての MOXy - MOXyJsonProvider 」を参照)。休暇から戻ったら、ビルド済みのMessageBodyReader/MessageBodyWriter` を追加して、MOXy を RESTEasy 環境の XML プロバイダーとして簡単に有効にできるようにします。

于 2012-12-23T13:15:40.357 に答える