Jakarta ee 在所有现有ejb都配置在ejb-jar.xml中的遗留项目中,是否可以使用ejb注释和CDI
有一个使用最旧EJB的遗留代码库,其中所有现有EJB都在Jakarta ee 在所有现有ejb都配置在ejb-jar.xml中的遗留项目中,是否可以使用ejb注释和CDI,jakarta-ee,ejb,cdi,ejb-jar.xml,Jakarta Ee,Ejb,Cdi,Ejb Jar.xml,有一个使用最旧EJB的遗留代码库,其中所有现有EJB都在EJB jar.xml <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1"> <session> <ejb-name>ABean</ejb-name> <home>
EJB jar.xml
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1">
<session>
<ejb-name>ABean</ejb-name>
<home>com.bla.api.RemoteBeanHome</home>
<remote>com.bla.api.RemoteBean</remote>
<ejb-class>com.bla.api.ABean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
....
新的本地无状态ejb代码如下所示:
@Stateless
public class TestEJB {
public void test() {
System.out.println("I am the first EJB injected with CDI");
}
}
问题:在这种情况下,是否仍然可以添加带有注释的新ejb而不是
ejb jar.xml
我很惊讶,部署描述符version=“2.1”
中的这个小标记告诉应用程序服务器您的应用程序是Java EE 2.1应用程序,它将相应地处理它。所有新的等级库功能将不可用。另外,我还感到震惊的是,从JavaEE2到JavaEE5的步骤太大了,如果没有代码更改,您将无法使您的应用程序成为JavaEE5+应用程序。我的意思是,在JavaEE5(家庭、远程等接口)中删除的所有锅炉板代码似乎仍在您的项目中。但我可能错了,我还不算太老,在版本5中开始使用JEE。我很惊讶,部署描述符version=“2.1”
中的这个小标记告诉应用服务器您的应用程序是Java EE 2.1应用程序,它将相应地处理它。所有新的等级库功能将不可用。另外,我还感到震惊的是,从JavaEE2到JavaEE5的步骤太大了,如果没有代码更改,您将无法使您的应用程序成为JavaEE5+应用程序。我的意思是,在JavaEE5(家庭、远程等接口)中删除的所有锅炉板代码似乎仍在您的项目中。但我可能错了,我不是那么老,在版本5中开始使用JEE。非常感谢您的回答。我说得很有道理。如果我更新整个多模块项目中所有ejbjar.xml
中的ejbjar
标记,会怎么样?Java被认为是向后兼容的,也就是说,Java语言是向后兼容的。“JavaEE”是一个规范,它定义了JavaEE应用程序服务器和JavaEE应用程序之间的契约。从JavaEE5开始,直到Jakarta8,您实际上只需更新版本标签,您的应用程序就可以使用新的规范。我的理解是JEE2->JavaEE5是一个突破性的变化。JavaEE5规范消除了许多锅炉板代码,即主接口。因此,要进一步改进,您还必须更改代码。取决于你的应用程序的复杂性,这可能是可能的,也可能是不可能的…非常感谢你的回答。我说得很有道理。如果我更新整个多模块项目中所有ejbjar.xml
中的ejbjar
标记,会怎么样?Java被认为是向后兼容的,也就是说,Java语言是向后兼容的。“JavaEE”是一个规范,它定义了JavaEE应用程序服务器和JavaEE应用程序之间的契约。从JavaEE5开始,直到Jakarta8,您实际上只需更新版本标签,您的应用程序就可以使用新的规范。我的理解是JEE2->JavaEE5是一个突破性的变化。JavaEE5规范消除了许多锅炉板代码,即主接口。因此,要进一步改进,您还必须更改代码。根据应用程序的复杂程度,这可能是可能的,也可能是不可能的。。。
@Stateless
public class TestEJB {
public void test() {
System.out.println("I am the first EJB injected with CDI");
}
}