0

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

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

我有一个 EAR 项目,名为sbwEAR.

我有一个带有 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

任何想法为什么这不起作用?任何帮助是极大的赞赏!

4

1 回答 1

0

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

于 2012-05-25T05:42:01.213 回答