1

このリンクによると、EJB が REST Web サービスとして公開されているために WAR にパッケージ化されている場合、WEB-INF ディレクトリのルートに ejb-*.xml ファイルが必要です。私の現在の環境は、Websphere 8.5 と EJB 3.1 です。

後で同じアプリケーションに (別々の EJB プロジェクトに) 複数の EJB を追加し、それぞれのプロジェクトでそのデプロイメント記述子を定義すると、それらは無視されるようです。すべての記述子を WEB-INF ディレクトリの記述子で定義する必要があるようです。つまり、別のプロジェクトとして定義されている EJB に対しても、WEB-INF ディレクトリの記述子を拡張する必要があるようです。

これが必要な方法ですか、それとも私にこれを強制する何かが欠けていますか? この部分を説明するドキュメントは見つかりませんでした。

詳細: これは私の application.xml がどのように見えるかです

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd"
 version="7">
<display-name>MyApp</display-name>
<module id="Module_1395346343165">
    <web>
        <web-uri>MyWeb.war</web-uri>
        <context-root>myapp</context-root>
    </web>
 </module>
 <module id="Module_1395346304194">
    <ejb>ejb1.jar</ejb> 
 </module>
 <module id="Module_1424684968934">
    <ejb>ejb2.jar</ejb>
 </module>
 <module id="Module_1431010943758">
    <ejb>ejb3.jar</ejb>
 </module>
</application>

ejb1 は、webapp に存在するものです。他の 2 つ、ejb2 と ejb3 は、EAR のルートにあるはずの個別の ejb プロジェクトです。

4

1 に答える 1

0

WAR モジュール内の EJB の場合、ファイルはWEB-INF、 so .ear!/MyWeb.war!/ejb-jar.xml.ear!/MyWeb.war!/ibm-ejb-jar-bnd.xmlなどになります。

WAR の外側にあるセパレーター EJB モジュール内の EJB の場合、ファイルはMETA-INF. だから、、、.ear!/ejb1.jar!/META-INF/ejb-jar.xmlなど.ear!/ejb1.jar!/META-INF/ibm-ejb-jar-bnd.xml

于 2015-06-15T14:38:05.810 に答える