EJB3规范表明EJB2和EJB3可以在一个应用程序中共存。
我希望将EJB2无状态会话bean迁移到EJB3无状态会话bean 这个问题根本不涉及JPA(这是将来要进行的单独工作)
我在websphere 6.1上运行,安装了EJB3功能包并进行了修补,并且增强了配置文件(ejb3示例应用确认它可以正常工作)
我需要对我的代码,web.xml,application.xml,ejb-jar.xml和其他特定于websphere的绑定进行哪些更改才能将SINGLE ejb从2转换为3?
答案 0 :(得分:1)
随着时间的推移,我会回答自己的问题 这是我通过它的方式
以下xml文件曾经有过doctypes,但现在必须有名称空间:
<强> myApp.ear / META-INF / application.xml中强>
<application version="5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd">
<强> myApp.ear / web.war中/ WEB-INF / web.xml中强>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<强> myApp.ear / ejb.jar / META-INF / ejb-jar.xml中强>
<ejb-jar id="ejb-jar_ID" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
对web.xml进行了以下更改
taglib元素现在位于jsp-config元素
已从过滤器元素中删除了display-name元素 和servlet元素
删除myApp.ear / ejb.jar / META-INF / ibm-ejb-jar-bnd.xmi
JNDI查找 更改所有本地ejb jndi查找以使用ejblocal:[classname]
我还从ejb-jar.xml映射中删除了我的jdbc资源引用,而是使用全局查找
我遇到的安全问题是因为我删除了ibm-application-bnd.xmi,它将用户和组绑定到角色/
答案 1 :(得分:0)
您需要将Java EE xml命名空间放在您提到的三个xml文件中。然后我想你删除你的WAS绑定文件并使用不同的jndi查找