4

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?

4

2 回答 2

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,它将用户和组绑定到角色/

于 2009-06-16T05:13:30.097 回答
0

您需要将 Java EE xml 命名空间放在您提到的三个 xml 文件中。然后我认为你删除你的 WAS 绑定文件并使用不同的 jndi 查找

于 2009-06-15T06:46:54.983 回答