2013-09-22 16 views
8

XSDからJAXBによって生成されたクラスのセットを使用したいプロジェクトがあります。これらのクラスでは、XMLとJSONのマーシャル/アンマーシャリングを行いたいと思います。実行時にjavenb.propertiesがMavenでビルドされていない場合

私は、私が必要とすることをするためにMoxy Eclipselinkが必要であることを理解しました。 Antプロジェクトとしてクラスとプロセスをテストした後、より良い管理のためにMavenに移すことにしました。

ただし、実行時にjaxb.propertiesファイルが認識されないようです。

私のプロジェクトには、オブジェクト用のMavenアーティファクトと、ロジック/処理用のアーティファクトがあります。私はjaxb.propertiesをどこに置いて読み込めるかを調べようとしていました。

私は

オブジェクトがプロジェクト

/src/main/resources/jaxb.properties 
/src/main/java/[namespace]/jaxb.properties 

ロジックプロジェクト

/src/main/resources/jaxb.properties 
/src/main/java/[namespace]/jaxb.properties 

、私は私のJAXBContextののクラス名を取得しようとしたとき、私はまだ取得しようとしている

class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl 

私が手

-Djavax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 

::私が見た場合、私はのpom.xml

<build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <includes> 
        <include>**/*.properties</include> 
       </includes> 
      </resource> 
     </resources> 
</build> 

でこれを指定した両方のプロジェクトで

class org.eclipse.persistence.jaxb.JAXBContext 

のJVMオプションを指定することで、私の実行の設定を変更しますJARでは、そこにjaxb.propertiesがあります。

Root of JAR 今私は混乱しています。

答えて

11

jaxb.propertiesファイルが対応するモデルクラスと同じパッケージ構造のresourcesディレクトリにあることを確認する必要があります。

+1

Blaise、そのGitHubリンクに感謝します。フォルダの構造を熟読した後、実際には意味をなさないようになりました。私はjaxb.propertiesを正しいパッケージに入れました。 –

+1

これは私にとっては役に立ちました。リファクタリングを行い、アプリケーションでモデルクラスを移動しましたが、jaxb.propertiesを移動するのを忘れてしまいました。パッケージ構造は、リソースツリーの下で正確に一致する必要があります。私のものは1つのパッケージで外され、すべてが壊れました。これは非常に重要なポイントです。 – Jon

+0

ありがとうsooo。これも私の問題でした。これが私がstackoverflowが好きな理由です。だから、多くの偉大な人々があなたを助けるのが好きです! – atom88

0

例、Mavenの内のJavaクラス

src\main\java\com\example\sitemap\generate\domain 

とファイルjaxb.properties

src\main\resources\com\example\sitemap\generate\domain\jaxb.properties 
関連する問題