これは私を夢中にしていて、私はofficial documentationが絶対にuselesであることにショックを受けています。ここで Ant + IntelliJ IDEAでOpenJPA拡張を行う方法
は私が持っているものです。- のIntelliJ IDEAを11
- のOpenJPA 2.1.1
OpenJPAのは、私はすでにのように見えるのOpenJPAにクラスパスを持っていた使用するライブラリのリストに追加されますので、この
<path id="library.openjpa.classpath">
<fileset dir="${basedir}/lib/openjpa">
<patternset refid="library.patterns"/>
</fileset>
</path>
次のターゲットを追加しました
<target name="enhance">
<copy includeemptydirs="false" todir="${basedir}/lib/openjpa">
<fileset dir="src" excludes="**/*.launch, **/*.java"/>
</copy>
<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
<classpath refid="library.openjpa.classpath"/>
</taskdef>
<openjpac>
<classpath refid="library.openjpa.classpath"/>
</openjpac>
</target>
それは私
Cの例外を与える:\作業\のPRJの\ build.xmlを:283:org.apache.openjpa.util.MetaDataException: MetaDataFactoryは (CONFを設定することができませんでしたが。 newMetaDataFactoryInstance()がnullを返しました。これは、構成プロパティが見つからなかったことを意味する を意味する可能性があります。 META-INF/persistence.xmlファイルがあり、クラスパスで使用可能であることを確認してください。 、または構成用に使用しているプロパティファイルが であることを確認してください。 Antを使用している場合は、タスクのネストされた要素の属性または の属性を参照してください。 これは、OpenJPAディストリビューションのjarファイルが破損している場合にも発生する可能性があります。セキュリティポリシーが過度に厳しい場合は になることがあります。
私はProcess Monitorでテストし、それが開き、persistence.xml
を読み込むことがわかります。
一部の人filed bug私は問題があり、彼が得た答えはpersistence.xml
が問題の原因ではないということでした。
質問は以下のとおりです。
- は、私はそれを動作させるために何ができますか?
persistence.xml
をスキップし、.classファイルのパターンを指定するだけで機能させることはできますか?- それはもっとAntの質問です。
openjpa-2.1.1.jar
以外のディレクトリにあるpersistence.xml
を探すためにOpenJPAエンハンサーを作るにはどうすればよいですか?
META-INFディレクトリがクラスパスにあることを確認しましたか? – Rick
Antスクリプトでクラスパスディレクトリを追加指定する方法がわかりません。しかし、OpenJPAのjarが置かれているディレクトリに 'persistence.xml'をコピーしたことを確認するだけです。 – expert