在发生此异常之前,我有两个项目
分页 -> 一个使用 EJB 的简单 struts2 Web 应用程序
简单的 PagingWithAjaxJSON-ejb -> 上述项目引用的 EJB 应用程序。
一切都按预期工作。
之后我决定在我的应用程序中使用 Maven。我根据 Web 应用程序的 Maven 目录结构更改了第一个应用程序(分页)。所以我只需要更改源代码中的包导入。
之前(在分页应用程序中)
import beans.personBeanRemote;
.
.
and so on..
之后(当前应用)
import com.mycompany.ajaxstruts2.beans.personBeanRemote;
.
.
and so on..
以及相应的包装声明。
除了这一切都是同上。
但是这次当我浏览同一个文件 index.jsp 时,它说
**Struts Problem Report
Struts has detected an unhandled exception:
Messages:
beans.personBeanRemote
ejb ref resolution error for remote business interfacebeans.personBeanRemote
Lookup failed for 'java:global/SimplePagingWithAjaxJson-ejb/personBean!beans.personBeanRemote' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming}
javax.naming.NamingException: Lookup failed for 'java:global/SimplePagingWithAjaxJson-ejb/personBean!beans.personBeanRemote' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NamingException: ejb ref resolution error for remote business interfacebeans.personBeanRemote [Root exception is java.lang.ClassNotFoundException: beans.personBeanRemote]]
File: org/glassfish/web/loader/WebappClassLoader.java
Line numbe 1578**
index.jsp 中的代码片段在以前和当前应用程序的 index.jsp 文件中是相同的。
但是<%@page import=...>
在当前项目的 index.jsp 中会相应地更改以适应更改的目录结构。
Context c = new InitialContext();
personBeanRemote bean= (personBeanRemote) c.lookup("java:global/SimplePagingWithAjaxJson-ejb/personBean!beans.personBeanRemote");
int x = bean.getCount();
以前的应用程序正在运行,但当前的 Maven 应用程序没有。两个应用程序都使用了 NetBeans IDE 6.9。
注意:EJB 应用程序是完整的。