0

デプロイメント記述子を EJB 2.x から EJB バージョン 3.x に移行しています。現在、次のエラーが発生しています。

[exec]   [wsadmin] com.ibm.ejs.container.EJBConfigurationException: 
com.ibm.ejs.container.EJBConfigurationException: 
The MyBean enterprise bean in the ejb.jar module has no EJB type defined.

http://docs.oracle.com/cd/A97335_02/apps.102/a83725/xml1.htmによると、これはエンタープライズ Bean 定義の ejb-jar.xml 要素です。

<enterprise-beans>
    <session id="MyBean">
        <ejb-name>MyBean</ejb-name>
        <ejb-class>foo.MyBean</ejb-class>
        <env-entry>
            <description>
            </description>
            <env-entry-name>bootloader.config</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <env-entry-value>my_config</env-entry-value>
        </env-entry>
    </session>
</enterprise-beans>

上記の要素「セッション」は、対応するクラスが javax.ejb.SessionBean インターフェイスを実装するため、セッションである Bean タイプを定義する必要があります。

ここですでに何か不足していますか?または、これらのデプロイメント記述子を移行するときに、Bean クラス自体も調整する必要がありますか?

よろしくお願いいたします。

4

2 に答える 2

0

わかりました。次のような websphere 固有の展開記述子を忘れました。

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
             xmlns="http://websphere.ibm.com/xml/ns/javaee" version="1.1">

     <session name="MyBean" simple-binding-name="MyBean">
      <resource-ref name="jms/foo/" binding-name="jms/foo"/>
     </session>

</ejb-jar-bnd>

これで、アプリケーションをデプロイできました。

于 2013-10-30T12:39:18.483 に答える
0

同じエラーが発生しました。

私にとっての修正は、クラス名の上に「@Stateless」注釈を追加することでした。

@Stateless
public class XxxxBean implements YyyyService

これは古いスレッドだと思いますが、これが誰かの助けになることを願っています:)。

于 2014-07-17T02:04:19.790 に答える