【发布时间】:2014-05-28 19:08:05
【问题描述】:
我有一个现有的 Web 应用程序 (Servlet),它远程访问当前写入 EJB 2.1 规范的 EJB(EJBHome、EJBObject、SessionBean,ejb-jar.xml 中的所有配置)。 servlet 通过 JNDI 查找访问 EJB,JNDI 名称在 weblogic-ejb-jar.xml 中指定。
我想将 EJB 更新到 EJB3.0,这将(希望)更容易添加到 API。
我的问题是我需要对现有的 servlet 代码进行最少的更改。换句话说,我仍然需要:
- 使用简单全局 JNDI 名称访问 EJB(它存储在数据库中,servlet 可以动态更改它查找的名称),并且
-
能够使用2.1风格:
String jndiName = getJndiName(); // e.g. "BeanV2.0" BeanHome home = (BeanHome) PortableRemoteObject.narrow( jndiContext.lookup(jndiName), BeanHome.class); BeanRemote remote = home.create(); remote.doBusiness(); // call business method
我尝试了一个精简版,应用@RemoteHome,但在部署过程中我不断收到错误。
我在 Weblogic 上部署(用于开发/生产),主要是 10.3.5 (11gR1),并且仅限于 EJB 3.0。我正在使用 Eclipse(带有 Oracle Weblogic Pack)进行开发。
谢谢。
【问题讨论】:
-
通过此链接,更改很少,但取决于您的代码设计。 javaworld.com/article/2071804/java-web-development/…
-
@Avinash K.P:我已经看到了那个链接。这篇文章说,DeMichiel 在 2005 Java One 2005 的 EJB 3.0 演示文稿中展示了一个示例。不幸的是,我所有指向该演示文稿的链接都指向developers.sun.com - 转发到Oracle Java 主页:-(。在Oracle 站点中搜索这篇文章给了我博客条目,所有这些都指向旧的Sun 站点。任何线索这些天在哪里可以找到那篇文章?
标签: java jakarta-ee ejb weblogic ejb-3.0