0

おそらく以前に何度も尋ねられたことをお詫びしなければなりませんが、広範な検索の結果、まだ確信が持てません。

web.xml には、JSP ページとサーブレットの構成パラメーターを格納できます。同じプロジェクト内の Bean に使用できますか? そうでなければ、豆に似たものはありますか?

保存しようとしている項目は、デプロイ固有の文字列です。DB ドライバー クラス、接続文字列、およびリソースへの一連のパスです。

私が見つけたオプションの 1 つは java.util.Properties でしたが、これにはいくつかのコーディングが必要です。

編集:

以下に提案されたソリューションを実装するために、ejb-jar.xml を Bean プロジェクトに追加し、以下を入力しました。

<enterprise-beans>
    <session>
        <ejb-name>ejbConfigurator</ejb-name>
        <env-entry>
            <description>Path to the directory containing images</description>
            <!--env-entry-name>package.ejbConfigurator/imageBasePath</env-entry-name-->
            <env-entry-name>imageBasePath</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <env-entry-value>/home/user/NetBeansProjects/Builder/images</env-entry-value>
        </env-entry>
    </session>
</enterprise-beans>

注釈付きの変数は入力されませんでした:

@Resource(name="imageBasePath")
private String imageBasePath;

また

@Resource private String imageBasePath;

そして以下のコード

try {
    Context ctx = new InitialContext();
    this.imageBasePath = (String) ctx.lookup("java:comp/env/imageBasePath");
}
catch (NamingException ex) {
    Logger.getLogger(ejbBlanketConfigurator.class.getName()).log(Level.SEVERE, null, ex);
}

例外をスローしました:

javax.naming.NameNotFoundException: No object bound to name java:comp/env/imageBasePath
4

2 に答える 2

0

ejb-jar.xml特に要素をチェックアウトすると、env-entry構成されたアイテムをコードに挿入できます

<env-entry>
  <env-entry-name>some_name</env-entry-name>
  <env-entry-type>java.lang.String</env-entry-type>
  <env-entry-value>Some configurable value</env-entry-value>
</env-entry>

そしてそれを注釈で使用するには:

@Resource(name="some_name")
String someString;

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/env_entry/env_entry.htmlを参照してください。

別の人が投稿したように、ejb-jar.xml の場所は、EJB jar の場所によって異なります。

でも

具体的には、DB ドライバー クラスと接続文字列に関しては、外部で構成されたデータ ソースを調べてから、外部で構成されたデータ ソースにアプリケーションから (通常は JNDI または JNDI + resource-refs を介して) アクセスすることをお勧めします。

于 2013-09-11T17:37:27.827 に答える
0

いくつかの方法があり、展開構造に応じて、いずれかを選択するのが理にかなっている場合があります。

  • META-INF/ejb-jar.xml- これは、EJB が独自の JAR 内にあり、それが EAR の一部である場合に使用されます。
  • WEB-INF/ejb-jar.xml- これは、EJB が WAR の一部である場合に使用されます。
  • 注釈 - Bean クラス自体の注釈を使用して、多くの構成オプションを指定できます。

上記は、EJB に固有の構成です。ただし、言及したリソースの一部は、 と の両方で指定されている場合がありejb-jar.xmlますweb.xml

参考までに、スキーマ ファイルを読んでみてください。十分に文書化されているか、このようなものです。

于 2013-09-11T17:29:45.730 に答える