問題タブ [embedded-jboss]
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 - Tomcat5.5.xに埋め込まれたJBossを使用したJNDIの設定を支援する
コードで次のルックアップを試してみると、次のようになります。
次の例外が発生します。
JBosswikiの指示に従って組み込みJBossをインストールしました。そして、構成wikiページで指定されているように、「デフォルトですべてのWARをスキャンする」デプロイメントを使用してTomcatを構成しました。
設定ページの引用:
JNDI
接続プール、EJB、JPA、トランザクションなどの組み込みJBossコンポーネントは、JNDIを広範囲に使用してサービスを公開します。組み込みJBossは、TomcatのJNDIインスタンス化の上にそれ自体を階層化することにより、TomcatのJNDI実装をオーバーライドします。これにはいくつかの理由があります:
- server.xml内でこれらのサービスのすべてを宣言する必要をなくすため
- WebアプリとEJB間のjava:comp名前空間の見た目のない統合を可能にするため。
- TomcatのJNDI実装には、一部のJBossコンポーネントの動作を妨げるいくつかの重大なバグがあります。
- >リモートで検索できるEJBやその他のサービスをリモート処理するオプションを提供したいと考えています。
上記の引用によると、Java:comp / envでルックアップを実行できるようにTomcatのJNDI実装をオーバーライドするJBossネーミングサービスを構成する方法について、誰かが考えていますか?
参考までに-私の環境Tomcat5.5.9、Seam 2.0.2sp、Embedded JBoss(Beta 3)、
注:データベース接続用の-ds.xmlファイルが適切にセットアップされており、指示に従ってクラスパスからアクセスできます。
注:この質問は、埋め込みJbossフォーラムとseamユーザーフォーラムに投稿しました。
jboss - Embedded Jboss を使用した JUnit テストの実行
ejb3 Bean を使用してクラスの junit テストを実行する必要があります。私たちの場合、この目的のためだけに jboss を設定することはオプションではないため、ejb 通信をシミュレートする別の方法が必要です。Embedded Jboss の EJB3StandaloneBootstrapper でこれが可能であることを読みましたが、問題はそれを適切に動作させることができないことです。
さまざまなファイル (embedded-jboss-beans.xml、ejb3-interceptor-aop.xml など) の構成方法など、すべての詳細を説明する優れたチュートリアルを誰かが知っているかどうか疑問に思っていました。埋め込まれた jboss パッケージには、コード例を含む junit のチュートリアルが付属していましたが、その中のビルド スクリプトは失敗しました。チュートリアルを知らない場合、少なくとも、埋め込まれた jboss + junit の実際の例がどこにあるのか知っていますか?
jboss - *embedded* JBoss のサーバー ライブラリに jar を追加する方法は?
統合テストのために Seam が使用する組み込み JBoss に暗号プロバイダーを追加する必要があります。
通常の JBoss の場合、サーバー インスタンスの /lib フォルダーにファイルをドロップするだけです。しかし、JBoss が組み込まれている場合は、状況が異なるようです。/embedded-jboss/bootstrap/lib および /embedded-jboss に jar を入れてみましたが、変更はありません。クラスは表示されません。
http://community.jboss.org/wiki/EmbeddedAndJavaSEを読み、org.jboss.embedded.Bootstrap のソースも調べましたが、まだ方法が見つかりません。重要な場合、ビルドは Maven で行われます。
ご提案いただきありがとうございます。
jboss7.x - 組み込み可能な JBoss EAP 6 / AS 7 の使用開始
仕様 (JSR 318: Enterprise JavaBeans, Version 3.1, ch. 22: Embeddable Usage) で説明されているEJBContainer.createEJBContainer API を使用して、組み込み可能な JBoss を試しています。
概要
- メイン メソッドを正常に呼び出すと、セッション Bean の呼び出しが成功します。
"java:jboss/UserTransaction"
ただし、JNDI オブジェクトを javax.transaction.UserTransaction にキャストできないため、クラスローディングの問題があるようです。 - したがって、ここではJBoss Modulesのクラスローディング マジックが必要になると思います。私の試みでは、createEJBContainer は EJBContainerProvider を見つけられず、EJBException をスローします。
すべての質問で、後続の詳細をすべて読む必要があるわけではないことに注意してください。読みにくい場合は、質問セクションをご覧ください。ありがとう!
環境
JBoss AS 7.1.1.Final (jboss-as-7.1.1.Final.zip で、logging conf のみが standalone.xml で変更されています)
(最初は、実際のターゲット環境である JBoss EAP 6.0.1 GA - 同じ問題)
Oracle JDK 1.7 .0_11
Windows 7 プロ 64 ビット
詳細
ステートレス セッション Bean
... とそのビジネス インターフェース:
クライアントプログラム
包装
C:\eclipse\projects\HelloWorldSlSB-Client\rt\HelloWorld-API.jar:
C:\eclipse\projects\HelloWorldSlSB-Client\rt\HelloWorld-EJB.jar:
HelloWorld-EJB.jar:META-INF/jboss-deployment-structure.xml:
C:\eclipse\projects\HelloWorldSlSB-Client\rt\modules\test\helloworld\client\main\HelloWorldSlSB-Client.jar:
C:\eclipse\projects\HelloWorldSlSB-Client\rt\modules\test\helloworld\client\main\module.xml:
すべての META-INF/MANIFEST.MF ファイルには、「Manifest-Version: 1.0」しか含まれていません。
結果
直接呼び出し
-Xmx512m -XX:MaxPermSize=256m
クラスパス を指定して HelloWorldEmbeddedEjbTestClient.main を直接呼び出すと、
およびシステム プロパティ
EJB 呼び出しは成功しますが、JNDI オブジェクト「java:jboss/UserTransaction」を javax.transaction.UserTransaction にキャストできません。
(少し奇妙に見えます。なぜなら、例外は main の最後でキャッチされて出力されるからです。しかし、もちろん、コンテナが閉じられる前に発生します。)
デバッガーは、JNDI オブジェクトの getClass().getClassLoader() が org.jboss.modules.ModuleClassLoader
ModuleClassLoader for Module "org.jboss.jboss-transaction-spi:main" from local module loader @4b436982 (roots: c:\java\jboss-as-7\modules)
であり、その getClass().getInterfaces()[0] /* == interface javax.transaction.UserTransaction */.getClassLoader()であることを示します。ただし、UserTransaction.class.getClassLoader()は
ModuleClassLoader for Module "javax.transaction.api:main" from local module loader @4b436982 (roots: c:\java\jboss-as-7\modules)
、sun.misc.Launcher$AppClassLoader 型です。
jboss-modules.jar の呼び出し
java -jar jboss-modules.jar
クラスパスを使用して org.jboss.modules.Main.main (つまり、何を行うか) を介して呼び出されます
上記のシステム プロパティ、および引数
createEJBContainer ですでに失敗しています。
デバッグは、メソッド EJBContainer.findAllFactories() で、リソース「META-INF/services/javax.ejb.spi.EJBContainerProvider」がスレッド コンテキスト クラスローダに見つからないために発生することを示しています。
ModuleClassLoader for Module "test.helloworld.client:main" from local module loader @1afec586 (roots: C:\java\jboss-as-7\modules,C:\eclipse\projects\HelloWorldSlSB-Client\rt\modules)
質問
- 誰かがこれを修正する方法を知っていますか、または仕事に似たものを得ましたか?
- 通常の JBoss インストールは適切な出発点ですか、それとも特定の組み込み可能なバリアントが必要ですか?
- UserTransaction は組み込み可能なシナリオでも使用できるはずですか?
- そうであれば、JPA 2 CMT エンティティと従来の JDBC コードの両方に 1 つの XA データソースを使用できるということですか? 両方とも同じトランザクションに参加できますか (たとえば、JDBC コードは java.sql.Connection.setAutoCommit(false) で tx を開始し、次に TransactionAttributeType.REQUIRED で EJB を呼び出します)?
- 誰かが私にいくつかのドキュメントを教えてもらえますか? 私が見つけたのは、標準の EJB 3.1 の方法ではなく、JBoss 固有の API を使用した古いものに関するものだけです。
- できれば、テストフレームワークなしで使用する方法を文書化してください。これは、本番環境で使用するために評価しているためです。
すべて (または :-) の一部を読んでくれてありがとう!
java - java コードから jboss cli で組み込みサーバーを起動するにはどうすればよいですか?
いくつかの cli コマンドが Java から有効かどうかを確認したいと思います。現在実行している構成ファイルを使用できません。さらに、時々リロードを行う必要があるため、実行中の Wildfly をまったく使用できません。
だから私はoffline-cli(組み込みサーバーを備えたcli)を使いたい
私がやっていること:
を使用して CLI に接続しますorg.jboss.as.cli.scriptsupport.CLI
cli.cmd による組み込みサーバーの起動
しかし、このコマンドが終了するのを永遠に待っている (?) ことを除けば、何も起こりません。
私が気づいたことの 1 つは、アプリケーションconfiguration-management.war
をワイルドフライにデプロイした後、状態が「デプロイ済み」に変わったことです。しかし、その後、サービスの開始に失敗します。その後、アプリケーションからの出力が表示されるため、あまり注意を払いませんでした。もしかしてこれが何か関係あるの?
私の mozilla firefox の左上隅にあるのは、その小さな回転する死の輪だけです。これは、私がまだ応答を待っていることを示しています。
ヒントはありますか?