1

この新しい EJB3.0 以降のバージョンに関するいくつかの質問を解決できることを非常にありがたく思います。

1) ejbCreateejbActivateおよび他のすべてのイベントが必要な場合、新しい EJB3.0 以降のバージョンからどのように取得できますか。

2)さまざまなアプリケーションサーバーに応じてJNDI名を割り当てる特定のxmlファイルを見つけるのに常に問題があるため、xmlファイルなしでJNDI名を指定し、すべてのアプリケーションサーバーで移植可能な名前を使用する方法はありますかアプリケーションサーバーにリモートでデプロイされたEJBを見つけることができます

3) 誰か教えてくれませんか、私は i) Tomcat - 5.5.x サポート ii) JDK - 1.6.x サポート iii) JSP/サーブレット - 2.0 サポートをサポートする Java/Linux のホスティング プランを持っています。

私が持っているTomcatがEJBを展開できないため、EJB 3.1を展開することは可能でしょうか。アドバイスをお願いします...

ありがとうございました...!!!私を助けてください...!!!

4

3 に答える 3

3

1)ejbCreate、ejbActivate、およびその他すべてのイベントが必要な場合、新しいEJB3.0以降のバージョンからどのように取得できますか。

EJB 3 以降では、EJB ライフサイクルは@PostConstruct@PreDestroyなどのライフサイクル アノテーションを通じて処理されます。

2)さまざまなアプリケーションサーバーに応じてJNDI名を割り当てる特定のxmlファイルを見つけるのに常に問題があるため、xmlファイルなしでJNDI名を指定し、すべてのアプリケーションサーバーで移植可能な名前を使用する方法はありますかアプリサーバーにリモートでデプロイされたEJBを見つけることができます

@Statelessおよび@Statefulアノテーションには、この問題を解決する可能性のある 2 つの属性 (name および mappingName) があります。まだ

マップされた名前は製品に依存し、多くの場合インストールに依存します。

お役に立てば幸いです。

于 2012-11-17T17:52:02.307 に答える
2

1)ejbCreate, ejbActivateなどは EJB 2.x に関連しています。EJB 3.x で同様の機能が必要な場合は、メソッドをアノテーション@PostActivate, @PrePassivateなどで装飾する必要があります。メソッドのシグネチャは、次のような特定の規則に従う必要があります@PostActivate

@PostActivate でアノテーションが付けられたメソッドは、次の要件に従う必要があります。

The return type of the method must be void.
The method must not throw a checked exception.
The method may be public, protected, package private or private.
The method must not be static.
The method must not be final.

この注釈には属性がありません。

2)およびアノテーションのnameおよびmappedName属性を参照しているようです。詳細については、公式ドキュメントを参照してください。私の経験では、mappedName の方が優れていますが、アプリケーション サーバー固有です。たとえば、Glassfish では完全に動作します。例:@Stateless@Stateful

@Stateless(mappedName="ejb/myBean")
public class MyFirstBean {
..
}
于 2012-11-17T17:50:23.190 に答える
0

誰も質問3に答えなかったので..

3)誰か教えてくれませんか、私は i) Tomcat - > 5.5.xSupport ii)JDK - 1.6.x サポート iii)JSP/servlet - 2.0 サポートをサポートする Java/Linux のホスティング プランを持っています

いいえ、Java EE をサポートするサーバーが必要になります。Tomcat に EJB ベースのアプリケーションをデプロイする方法を読む

于 2014-02-05T12:15:14.887 に答える