将ejb-jar描述符应用于抽象类

时间:2019-05-30 21:26:30

标签: java ejb weblogic12c ejb-jar.xml

我已经为weblogic服务器提供了一项服务,根据安装方式,我需要以两种不同的方式运行该服务。我的计划是在第一种情况下正常部署,在需要两个类的类中将 String 变量设置为 @Resource ejb-jar描述符不同的行为(我使用限定符选择),并且如果我想让第二个行为在安装过程中使用计划应用更改。

然后我决定将父类抽象化,因为我需要它的两个实现,并且需要将该变量保留在那里,以便仍然能够选择行为。但是,当我部署服务时,安装程序会失败,提示无法设置变量。

到目前为止,我试图完全删除 ejb-jar 并将变量设置为默认值,但是如果我想要第二种行为,该计划将无法设置新值(或者我不知道该怎么做,对于所有这些都是完全新的)。

可能可行的另一种想法是在实现抽象类的类中设置变量,并为每个变量使用 ejb-jar 进行设置,但可能会增加太多。 / p>

那么,我能看到的任何线索,帮助或文档吗?问题真的是该类是抽象类吗?还是我在其他地方弄乱了?

我得到的确切错误是:

  

weblogic.j2ee.dd.xml.AnnotationProcessException:[EJB:015005]未在会话bean MyAbstractBean的部署描述符或注释中设置会话类型

我知道这可能意味着我需要在描述符的 session 标签中添加一个 type 标签,但似乎是相同的 ejb-jar 可以用于非抽象类,我真的不知道该类型标签应该是什么。

这是我的ejb-jar:

<ejb-jar>
<enterprise-beans>
    <session>
        <ejb-name>MyAbstractBean</ejb-name>
        <ejb-class>mypackage.MyAbstractBean</ejb-class>
        <env-entry>
            <description> Here comes a descriptions</description>
            <env-entry-name>MyAbstractBean</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <env-entry-value>JMS</env-entry-value>
        </env-entry>
    </session>
</enterprise-beans>
</ejb-jar>

谢谢!

0 个答案:

没有答案
相关问题