7

我正在开发一个动态网络项目。项目在本地服务器上运行良好,但不是在现场。在实时服务器上,它在我使用任何 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

4

2 回答 2

6

看起来您忘记CollectionAppService在 JSP 中导入您的:

<%@ 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项目的一个类时,永远找不到,抛出异常。

最佳解决方案:

  • 从项目 B 创建一个 jar。
  • 在项目 A 中,删除对项目 B 的所有引用。
  • 将 jar 添加到项目 A 中并将其设置在 Build Path 中。
  • 将您的项目 A 上传到生产环境。
于 2012-09-19T20:36:18.497 回答
0

看来您在 JSP 之上缺少导入语句

您需要使用 import 导入用户定义的类

例子:

<%@ page import="yourpackage.CollectionAppService" %>
于 2012-09-19T20:32:18.177 回答