問題タブ [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.
jakarta-ee - JAX-RPC と Glassfish
Weblogic にデプロイされた JAX-RPC Web サービスを使用するレガシー アプリケーションがあります。埋め込まれたグラスフィッシュを使用してその周りにテスト ハーネスを作成しようとしていますが、それは ScatteredEAR です。
アプリは正常にデプロイされているようで、Web サービス エンドポイントが利用可能です。ただし、リクエストを行うと、この例外が発生します。
JAXRPCEndpoint が JAXWSEndpoint にキャストされている理由がわかりません。何が起こっている可能性があるのか 、誰かが光を当てることができますか?
また、MonitoringPipe のソースも調べましたが、単純にすべてを JAXWSEndpoint にキャストしています。Glassfish で JAXRPC がサポートされていない可能性はありますか?
また、MonitoringPipe をまったく無効にする機会はありますか? Glassfish で監視を無効にしようとしましたが、うまくいきませんでした。
どんなアイデアでも大歓迎です。
cdi - GlassFish に埋め込まれた依存関係を含める場合の依存関係の競合
Maven pom.xml に次の依存関係を含めようとすると、依存関係の競合が発生しました。
省略した場合、すべてが正常に機能し、deltaspike テストランナーがうまく機能します。私はグラスフィッシュの依存関係が必要なので、この問題を回避するのに役立つすべてのヒントをいただければ幸いです。スタックトレースと依存関係を追加しました...
この私のpomファイル:
maven - Maven に埋め込まれた Glassfish - ライセンス FileNotFoundException
私は Netbeans 8.0、Windows 8、Java EE 7、Maven Web アプリケーション プロジェクト、glassfish 4 を使用しています。
組み込み可能な EJB コンテナーで単体テストを実行しようとすると、コンテナーの作成が次の例外で失敗します。
Netbeans Web アプリ プロジェクト (Maven プロジェクトなし) で単純な単体テストを実行しようとすると、すべて正常に動作します (同じ一時フォルダーが使用されます)。どちらの単体テストも、組み込み EJB コンテナーを作成するだけです。
glassfish - Arquillian - プログラムによる構成
TestNGを使用して、グラスフィッシュ3.1.2.2が組み込まれたArquillianを使用して統合テストを作成しています。これらのテストを並行して実行できるようにしたいのですが、この場合、glassfish ポートとデータベース名を動的に構成する必要があります (このセットアップは既にあり、arquillian テストで再利用したいと考えています)。私が欠けているのは、データベースを準備し、フリーポートを検索し、グラスフィッシュ構成 (domain.xml、glassfish-resources.xml の場合もあります) を更新できる「コンテナ開始前」フックです。これに対する「クリーンな」解決策はありますか、それとも私のユースケースは Arquillian 開発者によって予見されていませんでしたか?
私が現在解決したハックな方法は、arquillian の beforeSuite メソッドをオーバーライドすることですが、これはテストの起動時とコンテナー内で 2 回呼び出されます (したがって、私の哀れな静的フラグ)。次に、arquillian の before スイートをインターセプトする方法がないため、このソリューションは JUnit ベースのテストでは機能しません。
私が
持っていたいくつかのアイデア:
+ Arquillian JavaDocsでイベント を見たことがありますが、Arquillian イベントをリッスンする方法がわかりません。+ ShrinkWrap Descriptorを作成する
可能性があることを確認しましたが、これらは Glassfish リソースをサポートしていません。@BeforeSuite @RunAsClient
@RunAsClient
@Test
org.jboss.arquillian.container.spi.event.container.BeforeStart
@Deployment
junit - Arquillian は、Glassfish 組み込みコンテナーにローカルまたはリモート EJB を注入できません
Arquillian を使用して、明示的なローカルおよびリモート インターフェイスを持つ EJB をテストします。しかし、テストでは、Arquillian はローカル インターフェースまたはリモート インターフェースのタイプを持つフィールドに何も「注入」しません。
テスト用のサーバーとして埋め込まれた Glassfish を使用し、junit4 を使用します。
私が使用した:
@EJB
、@Inject
、@EJB(lookup="java:global/costa-services-depa/GreeterImpl!es.costa.GreeterLocal")
、@EJB(lookup="java:global/costa-services-depa/GreeterImpl!es.costa.GreeterRemote")
(2)でもGreeterImpl
、またはGreeterLocal
、GreeterRemote
エラーが発生しますCould not inject members
。
(1,3,4) をjava.lang.NullPointerException
使用すると、EJB が注入されていないことを意味します。
これは私のコードの一部です:
は次のglassfish-resources.xml
とおりです。
は次のtest-persistence.xml
とおりです。
これは次のarquillian.xml
とおりです。
これはjbossas-ds.xml
次のとおりです。
Glassfish 組み込みおよび Arquillian と Junit の依存関係について:
コンソールで私は気づいた:
NB : デフォルトでは、テストアプリケーションとしてデプロイされるか、「costa-services-depa」を作成したものとしてデプロイされませんか?
EJB の呼び出しのパスで、costa-service-depa の代わりに test を配置したことを知るために、常に同じ問題が発生します ( NullPointerException
)。
unit-testing - 単体テストでインターセプターが機能しない
私はInterceptors
アプリケーションサーバーで作業しています。EJB に注釈を付けました。
ロールの空のリストは、 role に対してのみ許可されていることを意味しadmin
ます。
この EJB の単体テスト ファイルは次のとおりです。
そして、このテストは機能しています。ログインしている管理者ロールを持つユーザーがいないため、それは正しくないと思います。しかし、なぜこの動作が発生するのでしょうか?
更新しました。
@制限されたインターフェース:
SecurityInterceptor クラス
はフォルダーにbeans.xml
配置され、次のようになりますWEB-INF
誰かが私を知るのを手伝ってくれますか:
- 単体テストでインターセプターを動作させる方法は?
- 単体テストで承認されたセッションを開始する方法 (たとえば、管理者としてログイン)?
- アカウントの作成や削除などの操作をさまざまなテスト (作成用のテストと削除用のテスト) でテストするにはどうすればよいですか? 1 回のテストですべての操作をテストするのは正しいですか?
お時間をいただき、ご質問いただきありがとうございます。
cdi - プロデューサーは Arquillian プロセスで Weld によって発見されます
Glassfish 組み込みプラグインを使用して Arquillian で単体テストを実行しているときに、次の CDI エラーが発生します。
修飾子 @SupportedLocales を持つ Set(Locale) は、テスト済みの WebArchive にデプロイされたモジュールで定義されます。アーカイブの内容は次のとおりです。
このオブジェクトは、「common-cdi」モジュールにあるプロデューサー メソッドによって提供されます。同じモジュールが ThreadScoped のような CDI 拡張機能を提供します。このプロデューサーは、テストの開始時に Weld によって検出されず、Weld は「commons-cdi」モジュールから Bean を検出しません。それはどのように可能ですか?同じモジュールで CDI 拡張機能と CDI Bean を提供できますか?
@SupportedLocales は、「commons-cdi」で次のように宣言されています。
プロデューサーは、「commons-cdi」で次のように宣言されています。
JUnit テスト ケース定義:
MyCurrentLocale クラス定義:
宣言に何か問題がありますか?