問題タブ [tomee-7]
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 - TomEE 7.0.0 の ManagedScheduledExecutorService のタスク内のトランザクション?
環境
を使用して定期的なバックグラウンド タスクをスケジュールしたいと考えていManagedScheduledExecutorService
ます。を介してRunnable
s/ sを取得するので、タスク内でインジェクション機能を使用できます。Callable
Instance
私のアプリケーションは で実行されTomEE 7.0.0-SNAPSHOT webprofile
ます。
問題
これらのタスクはデータベースにアクセスしているため、トランザクションが必要です。ただし、Runnable
/Callable
の内部ではトランザクションはアクティブではありません。
ユーザー取引
ManagedScheduledExecutorServiceのドキュメントには、
トランザクションが必要な場合は、javax.transaction.UserTransaction インスタンスを使用してください。Resource アノテーションを使用して UserTransaction オブジェクトの注入を要求することにより、UserTransaction インスタンスを使用できます (...)。
ただし、注入された
null
タスクを呼び出すときです。
ステートレス Bean
私がとったもう 1 つのアプローチは、ステートレス EJB をタスクに挿入することでした。これにより、トランザクションが作成されることを期待していました。
これにより、起動時に次の例外が発生しました。
テストケース
Githubで小さなテスト ケース プロジェクトを作成しました。これには、上記の問題を示す 2 つのブランチが含まれています。
質問
@Stateless
すべてのインスタンスがインジェクションを使用して取得されるため、EJB は正常に動作するはずではありませんか?- なぜ
@Resource
注射はUserTransaction
失敗するのですか?
java - TomEE 組み込み/単一アプリケーションのバンドル
私は現在、TomEE サーバーにバインドされた webapp の構築を検討しています。つまり、TomEE 内の唯一の (追加の) アプリケーションとして実行されるか、TomEE が埋め込まれています。Web アプリケーションは、サーブレットと JSP をサポートする必要があります (基本的に、ここでは Struts2 を使用したいと考えています)。
私はすべていくつかの問題を抱えていたいくつかのオプションを試しました:
オプション 1 : Maven-Shade-Plugin を使用してアプリケーションと tomee-embedded をバンドルします: http://www.tomitribe.com/blog/2015/03/50-shades-of-tomee/
問題:
1) バンドルされたアプリケーションの展開は、--as-war
オプションを介して 7.x バージョンでのみ機能しますが、7.x はまだ本番環境に対応しておらず、予定されているリリース日を見つけることができませんでした
2) JAXRS Web サービスのデプロイは正常に機能しましたが、サーブレットは機能しませんでした。たとえば、web.xml が取得されなかったり、クラスロードの問題が発生したりしました。
オプション 2 : TomEE-Maven-Plugin を使用して、tomee と webapp を含む zip をビルドします。
問題:
1) これはプラグイン バージョン 7.x (まだ本番環境には対応していません) でのみ機能しますが、結果のビルド (TomEE 1.7.2 に基づく) には影響しません。
2) TomEE は、アプリケーションによって (別のバージョンで) 提供されているいくつかのライブラリをロードする可能性があるため、ライブラリの競合があります。
アプリケーションはサーバーに関連付けられており、その逆も同様であるため、すべてのライブラリを TomEE の lib フォルダーに配置しても問題ありません。このフォルダーは、依存関係がダウンロードされるフォルダーに Maven プラグインをポイントすることによって機能します。これは機能しますが、競合の解決はありません。つまり、ライブラリがターゲット フォルダーにコピーされるだけです。
競合する各アーティファクトを削除するようにプラグインを手動で構成できるようになりましたが、アプリケーションと競合する可能性のあるライブラリの数が増えるにつれて、これは非常に面倒になる可能性があります。
オプション 3 : オプション 2 と同様ですが、TomEE-Maven-Plugin を使用しません。
事前にパッケージ化された TomEE といくつかの Maven プラグインを使用して、問題番号を解決する配布可能な zip を構築できるはずだと思います。1でも問題なし。2 - これは大きい方ですが、まだ残っています。すべての依存関係を手動で処理するのは面倒です。
最後に、問題は、そのアプリケーションをどのように構築すればよいかということです。
私はオプション 1 を好みますが、それを機能させる方法に関するドキュメント/例/チュートリアルをまだ見つけることができませんでした。
オプション 2 と 3 も問題ありませんが、各依存関係、特に推移的な依存関係を確認する必要なく、Maven に依存関係の競合を解決させる方法が必要です。
corba - Corba/IIOP クライアントを使用して TomEE (Plume) にデプロイされた EJB3 にアクセスするには?
TomEE (Plume) にデプロイし、IIOP/CORBA クライアントを使用して同じ EJB3 にアクセスしているときに、 EJB3 をIIOP/CORBA準拠として公開するためのヒントまたは例を探しています。
現在のアプリケーションは、EJB (EJB3)がCORBA/IIOPクライアントに公開され、すべての WEB およびスタンドアロン クライアントがIIOP/CORBAプロトコルを使用してこれらのEJBを使用するように設計されています。
例:
Glassfishはcorbaプロトコルを完全にサポートしており、正常に動作します。今、私はTomEE Plumeで同じ作業をしたいと思っています。
同じことに関する入力やヘルプは、Glassfish の代わりにアプリケーション サーバーの適切な候補として TomEE を選択する決定につながります。
jsf - EL を使用した JSF リソース - Faces 2.2.9 が機能しなくなる
以下のコードは、faces 2.1.7 を使用していたときに機能していました。しかし、Face 2.2.9 を使用するように TomEE 7 を変更した後、機能しなくなりました。
2.2.9 では、次のコードが生成されます。
#{resource['default:css/main.css']}
EL式を生成していない理由は何ですか?
java - コンテキスト パスにデプロイされた SpringBoot
SpringBoot アプリケーションを EAR としてパッケージ化し、ローカルの TomEE 7 インスタンスにデプロイします。
デプロイされると、次のコンテキスト パスでホストされます。TOMEE/my-app-api
webapp フォルダー内の静的な index.html ページは、TOMEE/my-app-api/index.html から正しく提供されます。
RestController
単一の GET エンドポイントがマップされた があります/api/country
RestController
経由で電話をかけようとするとTOMEE/my-app-api/api/country
、404 が返されます。
埋め込まれた Tomcat インスタンスから同じアプリを実行し、RestController
viaTOMCAT/api/country
を呼び出すと、成功した応答が得られます。
SpringBoot をこのコンテキスト パスでホストするために、追加で構成する必要があるものはありますか?
EAR Gradle タスク
アプリケーションクラス
jakarta-ee - TomEE 7.0.0-M1 で Jax RS を使用して Bean Validation を有効にする方法は?
本当に基本的な点が欠けているに違いないことは承知しています。次のリソース メソッド:
Glassfish4 では期待どおりに動作します (つまり、400 Bad Request を返します) が、TomEE 7.0.0-M1 (jee7) では検証注釈を無視し、200 OK で応答します。プロパティを設定しようとしましたが(TomEE 7ではデフォルトで有効に設定されていますが)、まだ何もありません。
ここで何が欠けていますか?