我正在开发一个动态网络项目。项目在本地服务器上运行良好,但不在现场运行。在实时服务器上,它会在我使用任何java对象的行中抛出异常:
org.apache.jasper.JasperException:无法为JSP编译类:
An error occurred at line: 7 in the jsp file: /groups.jsp
CollectionAppService cannot be resolved to a type
4: <%
5: String json = "[]";
6: try {
7: CollectionAppService collectionAppService = new CollectionAppService();
8: json = collectionAppService.getGroupsJson();
9: } catch (Exception e) {
10: e.printStackTrace();
项目在本地服务器上运行,但在最大类文件的错误日志中也有错误:
错误:
Thu Sep 20 01:16:11 GMT+05:30 2012
File not found: /Users/sukhpal/Data/Workspaces/J2EE Workspace/CollectionApp/build/classes/com/mut/service/common/Constants.class.
请帮助。(在我的实时服务器上启用了Tomcat)。
以下是实时服务器的链接 http://mutmanager.com/webservice/groups.jsp
答案 0 :(得分:5)
您似乎忘记在JSP中导入CollectionAppService
:
<%@ page import="your.package.CollectionAppService" %>
但是,存在一个主要问题,您不应该将Java代码放入JSP中。相反,您应该将代码移动到类中,并从Servlet或类似代码中调用它。
主要文章:
不要忘记学习是好的,但也要以正确的方式学习。
再次阅读你的问题后,我看到了这个Stacktrace行:
找不到文件:/ Users / sukhpal / Data / Workspaces / J2EE Workspace / CollectionApp / build / classes / com / mut / service / common / Constants.class
我想你的问题是Constant
类(以及你的CollectionApp
)在项目B中。你正在使用来自另一个包含这些类的项目的绝对路径引用,也许你是'不要上传它。
想象一下这种情况:您有一个Web项目(项目A),并且您有一些类已经在另一个项目(项目B)中执行繁重且奇特的工作,您可以在您工作的大多数项目中重复使用。在您的开发环境中,您有从项目A到项目B的引用,但之后您只将项目A上载到生产环境。这样,当项目A想要从项目B调用一个类时,它将永远不会找到它,并抛出异常。
最佳解决方案:
答案 1 :(得分:0)
您似乎缺少JSP上的import语句
您需要使用导入
导入用户定义的类示例:
<%@ page import="yourpackage.CollectionAppService" %>