我有一个带有服务的 weblogic 服务器,我需要根据安装情况以两种不同的方式运行。我的计划是在第一种情况下正常部署,将String变量设置为@Resource ,并在需要两种不同行为的类中使用ejb-jar 描述符(我选择使用限定符),如果我想要第二种情况,则使用在安装过程中计划。
然后我决定使父类抽象,因为我需要它的两个实现,并且我需要将该变量留在那里仍然能够选择行为。但是当我部署服务时,安装程序失败,说无法设置该变量。
到目前为止,我尝试的是完全删除ejb-jar并使用默认值设置变量,但是如果我想要第二种行为(或者我不知道该怎么做,则计划无法设置新值)它,这对所有这一切来说都是相当新的,这是完全可能的)。
另一个可能可行的想法是在实现抽象类的类中设置变量,并为每个类使用ejb-jar设置它们,但这可能会增长得太多。
那么,我可以查看任何线索、帮助或文档吗?问题真的是这个类是抽象的还是我在其他地方搞砸了?
我得到的确切错误是:
weblogic.j2ee.dd.xml.AnnotationProcessException:[EJB:015005]会话类型未在会话 bean MyAbstractBean 的部署描述符或注释中设置
我知道这可能意味着我需要在描述符中的会话标签中添加一个类型标签,但相同的 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>
谢谢!