Eclipse EE - 为什么我的Web项目中的JSP不能在EJB项目中看到类?

时间:2012-05-24 02:27:26

标签: eclipse java-ee glassfish ejb ear

我正在使用Eclipse(Indigo)和GlassFish 3.1.2。

我有一个EJB和JPA类的项目,名为sbwEJBJPA

我有一个名为sbwEAR的EAR项目。

我有一个带有JSP和Servlet的动态Web项目,名为sbw

当我从EAR项目导出EAR文件时,EAR文件包含sbw.war和sbwEJBJPA.jar。

我的sbw/WebContent/META-INF/MANIFEST.MF文件如下所示:

Manifest-Version: 1.0
Class-Path: sbwEJBJPA.jar

问题是,当我运行这个简单的JSP文件时:

<%@page import="sbw.domain.Website"%>
<% Website w = new Website(); %>
<%= new String("Hello from test.jsp") %>

它爆炸了,因为它无法在sbwEJBJPA.jar中看到Website.java类,这里是错误:

org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP

PWC6199: Generated servlet error:
string:///test_jsp.java:6: package sbw.domain does not exist

PWC6197: An error occurred at line: 3 in the jsp file: /test.jsp
PWC6199: Generated servlet error:
string:///test_jsp.java:48: cannot find symbol
symbol  : class Website
location: class org.apache.jsp.test_jsp

PWC6197: An error occurred at line: 3 in the jsp file: /test.jsp
PWC6199: Generated servlet error:
string:///test_jsp.java:48: cannot find symbol
symbol  : class Website
location: class org.apache.jsp.test_jsp

为什么这不起作用的任何想法?非常感谢任何帮助!

罗布

1 个答案:

答案 0 :(得分:0)

Class-Path标头仅在值与清单文件位于同一存档中时才有效。 sbwEJBJAP.jar不在swb war文件中。删除该清单,转到Web项目的Deployment Assembly属性页,并将其标记为需要sbwEJBJPA项目。