問題タブ [glassfish-embedded]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 組み込みの ejb-Test-Get データベース
テスト用の埋め込み ejb コンテナーを取得しました。クライアント側 (テスト) では、ルックアップ メカニズムを使用して DataSource を取得したいと考えています。問題は、ルックアップ メソッドが常にエラーを返すことです。
javax.naming.NamingException: SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory. state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [ルート例外は javax.naming.NamingException: 呼び出し例外: Got null ComponentInvocation ] at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:491)
persistence.xml:
グラスフィッシュ-resources.xml:
MyTest.java:
さまざまなルックアップ属性を試しましたが、どれも機能しませんでした。誰かが何か考えがありますか?
jakarta-ee - EJB3 からの Restful クライアントのテスト
EJB 内で JAX-RS クライアントを作成しているときに、JAX-RS の実装を取得できない理由がわかりません。Glassfish 3.1 のようなアプリケーション サーバーは、Jersey のような JAX-RS 実装を提供する必要があると想定されており、依存関係のように追加する必要はありませんが、それを見つけることができません。
エラーは、java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
Glassfish が提供する必要があるため、Jersey をクラスパスに追加する必要はないと思います。
エラーを生成するコードは
このコードは EJB メソッド内にあり、私のテスト ケースは次のとおりです。
pom.xml ファイルの依存関係は次のようになります。
パッケージはWARファイルですが、問題ないと思います。
maven - Glassfish 埋め込みは EJB モジュールをデプロイできません
私の問題に対する答えを見つけるために Stackoverflow を検索しましたが、非常によく似た問題がいくつか見つかりましたが、答えはありませんでした。
私がやろうとしていること: Glassfish 4.1 組み込みコンテナーが開始される簡単な junit テストを作成し、EJB の簡単な操作をテストします。
サンプル EJB:
ものすごく単純。これが私の単体テストです:
私の pom.xml 依存関係:
また、次の依存関係を追加してみました。
結果: 埋め込まれた GF 4.1 コンテナーは、その単純な EJB をロードできませんでした (maven コンパイル後に target/classes フォルダーにあります)。
さまざまなコード変更 (プロパティを使用してコンテナーに渡すかどうかなど) に基づいて、次のエラーが発生します。
GF 4.1 組み込みの UnsatisfiedDependencyException
GF 4.1 Embedded で EJB クラスをデプロイできない
貼り付けたコードは、リンクされた最後のエラー メッセージを表示しています。
そして、私は理解していません。私が情報を探すところはどこでも、これはうまくいくはずだと言っています。
また、これを OpenEJB コンテナー (残念ながら jee6 のみ) で試してみると、正常に動作します。
助けてくれてありがとう!
jakarta-ee - Arquillian と GlassFish が埋め込まれた構成の問題、デプロイが失敗する
私は数か月前に開発されたアプリケーションに割り当てられましたが、本番環境にデプロイされたことはありません。これは、EJB が組み込まれた戦争です。ターゲット サーバーは JavaEE 7 (Weblogic 12.2.1) でしたが、このサーバーは私たちのインフラでは利用できなかったため、統合テストは Glassfish-embedded-3.1 上の Arquillian で行われました。
はい、わかっています。Glassfish-3.1 は JavaEE 6 に準拠しているため、あまり論理的ではありません。さらに、プロジェクトはいくつかの Java 8 機能で構築されています。:)
しかし問題ありません。統合テストはこの構成でうまく動作します。これは、このバージョンの pom です。
私には奇妙に聞こえるいくつかの点があります:
- コンパイラのソースとターゲット: 1.8
- javaee-api : 7.0 (1.8 を使用しても安全ですか??)
- arquillian-glassfish-embedded-3.1 (javaee 7 の場合 ??)
- glassfish-embedded-all : 4.1 (arquillian-glassfish-embedded バージョンにリンクすべきではありませんか?)
奇妙に聞こえるかもしれませんが、Arquillian テストはこの構成で問題なく実行されます。これらの点は、この質問の主な目的ではありません。
その後、数週間前、数か月凍結された後、このプロジェクトを本番環境にデプロイする必要があります。また、このプロジェクトは、ターゲット バージョンの weblogic の別の環境でテストまたはデプロイされたことはありません。
実際、weblogic 12.2.1 は私たちのインフラストラクチャではまだ利用できなかったため、プロジェクトをダウングレードして weblogic 12.1.3 で実行する必要がありました。(コンパイラ ソースとターゲット:1.8 / javaee-api:7 / ダイアモンド、ストリーム、複数のキャッチの削除、EJB タイマーのリファクタリング、@EJB による EJB インジェクション @Inject の奇妙な動作のため、LocaleDate のリファクタリング、try の loadResource など)
私はあまりにも急いでいたので、IT 構成の維持に気を配っていませんでした。(ただし、単体テストは問題ありません。) プロジェクトは正常に展開され、運用環境で正常に実行されます。
今、私はこのプロジェクトに再び費やす時間が少しあり、IT を正そうとしていますが、それは悪夢であり、起こっていることすべてを理解していません.
私のアプローチ:
- そのまま実行します。
UT で失敗:
わかりました、それは への依存が原因ですjavaee-api 6.0
。
- 依存関係
javaee-api
をorg.jboss.spec:jboss-javaee-6.0:1.0.0.Final
バージョン 3.0.3.Final 以降に置き換えます。
IT での失敗 :
OK、jboss-javaee-6.0
依存しますjavax.validation:validation-api:jar:1.0.0.GA
がParameterNameProvider
、validation-api 1.1 にあります
は。ParameterNameProvider が必要な理由がわかりません。何によって?JUnit4で?Validation 1.1 に対して検証するのはなぜですか?
- 依存関係を validation-api 1.1 に追加します
javax.validation:validation-api:1.1.0.Final
。
失敗:
SynchronizationType
JavaEE 6には存在しないため、失敗することを理解していますJava Persistence 2.1
。しかし、繰り返しになりますが、私のプロジェクトでこの必要性を意味するのは何ですか??? 私の依存ツリーには、jboss-javaee-6.0
それに依存するhibernate-jpa-2.0-api
ものがあります-その名前が信頼できる場合-jpa 2.0に準拠しています。
ああ、わかりました。glassfish-embedded-all:4.1
一致しないに依存しているためです。
- この依存関係のバージョンを次のように置き換えます
org.glassfish.main.extras:glassfish-embedded-all:3.1.2.2
それでも失敗します...サーバーが起動する前のITの開始時に、次のエラーが発生しました:
サーバーが起動し、JDBC リソースは問題なく、デプロイが開始されますが失敗します:
そして今... どうすればいいのかわかりません。
今私のポンは:
誰かが私を助けることができますか?