我正在使用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
为什么这不起作用的任何想法?非常感谢任何帮助!
罗布
答案 0 :(得分:0)
Class-Path标头仅在值与清单文件位于同一存档中时才有效。 sbwEJBJAP.jar不在swb war文件中。删除该清单,转到Web项目的Deployment Assembly属性页,并将其标记为需要sbwEJBJPA项目。