2016-10-08 4 views
0

Eclipse Mars 2とGlassfish 3.1.2で作業しようとしていますが、EclipseLink 2.1を使用してテーブルからエンティティを作成すると、javax.persistenceが見つかりませんビルドパスでGlassfish 3.1.2にはjavax.persistence jarが含まれていません

これは正常な動作ですか?

  1. 私はGlassFishのサーバを起動し、データソースと接続プールを構成しGlassfishの3
  2. とJEE 6 SDKをインストール日食
  3. でのOracleデータベースの接続を作成しました。
  4. 私はJPAプロジェクトを作成し、db接続テーブルからエンティティを作成しました。

私は好奇心を見つける何かはGlassFishの/ libの中にあるjee.jarが唯一のpom.xml

が含まれていることであるJEE標準で開発するのに必要なすべてのjarファイルが含まれていることになってGlassFishのではありませんか。

私のプロジェクトは、このJARを自動的にダウンロードするためにMavenプロジェクトであることを意図していますか?プロジェクトをMavenプロジェクトとして設定することでこれを修正できますか?

+0

javaee-api v6にはJPA APIが含まれていますが、JPA 2.0にはJPA 2.1が含まれていません。 http://repo2.maven.org/maven2/javax/javaee-api/6.0/何かが見つからないと言ってもそれほど正確ではないので、EXACTメッセージを含めると、おそらくトレースとスタックトレース –

答えて

1

Glassfishはjee標準で開発するために必要なすべてのジャーを含んでいないとしますか?

はい、それには間接的に必要なすべてのジャーが含まれています。たとえ1つのファイルしかない単一のjarファイルであっても、MANIFEST.MFと、言及したpomファイルを含むmavenというディレクトリです。

MANIFEST.MFファイルを開くと、JavaEEアプリケーションを開発するために必要な多くのjarファイル(Class-Path:エントリ)を指していることがわかります。

JavaEE(サーブレット、JSF、EJB、JPA、...)クラスをコンパイルしてサーバーにデプロイできるようにするには、このファイルを依存関係に追加するだけです。ただし、この(javaee.jar)はコンパイル時の依存関係である必要があります。つまり、jarがすでにサーバーに含まれているため、アプリケーションにパッケージ化しないでください。

私のプロジェクトは、このJARを自動的にダウンロードするためにMavenプロジェクトを意図していますか?

いいえあなたのプロジェクトは、mavenプロジェクトであっても構いません。たとえば、EJBアプリケーションを開発するEclipseプロジェクトがあるとします。プロジェクトのちょうど右クリック

  • Glassfishのlibディレクトリに移動し、javaee.jarを追加し、あなたが行われAdd External Jars ...

  • クリックしProperties -> Build Pathページに移動しLibrariesタブに変更。

  • すべてのJavaEEアノテーションとクラスを使用できるようになりました。
+0

ありがとうございます。私は何かが間違っていると思った。 –

関連する問題