【问题标题】:Importing java classes into JSP将java类导入JSP
【发布时间】:2011-11-24 03:32:10
【问题描述】:

这就是问题所在。

我用NetBeans 7Tomcat 7hsqldb 开发了一个网络应用程序;在我的桌面上一切正常。

当我将我的 java 文件(.class、.jsp 和 .jar 包)上传到我的站点并尝试加载一个 jsp 页面时,该页面会导入包中包含的类(包 it.swlab.util 中的类 FunzioniSessione),我收到以下错误:

org.apache.jasper.JasperException: Unable to compile class for JSP:  
An error occurred at line: 6 in the generated java file 
Only a type can be imported. it.swlab.util.FunzioniSessione resolves to a package 

An error occurred at line: 7 in the jsp file: /index.jsp 
FunzioniSessione cannot be resolved to a type 
4: <% 
5: synchronized(this) 
6: { 
7: FunzioniSessione funzioniSessione = new FunzioniSessione(); 
8: String percorso = config.getServletContext().getRealPath("/"); 
9: funzioniSessione.inizializza(session,request,response,percorso,"infocar"); 
10: boolean connesso = session.getAttribute("utenteConnesso") != null; 

An error occurred at line: 7 in the jsp file: /index.jsp 
FunzioniSessione cannot be resolved to a type 
4: <% 
5: synchronized(this) 
6: { 
7: FunzioniSessione funzioniSessione = new FunzioniSessione(); 
8: String percorso = config.getServletContext().getRealPath("/"); 
9: funzioniSessione.inizializza(session,request,response,percorso,"infocar"); 
10: boolean connesso = session.getAttribute("utenteConnesso") != null; 

Stacktrace: 
 org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93) 
 org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) 
 org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451) 
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:328) 
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:307) 
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:295) 
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:565) 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:309) 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) 
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) 
 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.33 logs. 

为了避免一些明显的答案,我添加了一些更多信息:

  1. 包含类 FunzioniSessione(名为 funzioniComuni.jar)的包位于 WEB-INF\lib 文件夹中
  2. 我无法按照堆栈跟踪中的说明查看日志,因为我无权访问我的提供商的 Tomcat 服务器的日志文件夹。 3 导入指令是&lt;%@page import="it.swlab.util.FunzioniSessione"%&gt; 我也试过用“;”最后 (&lt;%@page import="it.swlab.util.FunzioniSessione;"%&gt;) 但没有成功。

我等待一些建议。

谢谢

【问题讨论】:

  • 该错误表示运行时类路径中缺少该类。它与普通 Java 代码中的NoClassDefFoundError 基本相同(如果您在 Java servlet 类中而不是在 JSP 文件中编写 Java 代码,那会更清楚)。你用的是什么主机?你是如何部署 web 应用程序的?作为单个 WAR 文件还是作为代表 WAR 扩展内容的一堆松散文件?

标签: java jsp tomcat


【解决方案1】:

你的类路径上有 FunzioniSessione 吗?通常我们将类保存在 web-inf\classes 中,它已经是 onclasspth。您能否确保部署目录与您在预期包中的类具有这种结构?

【讨论】:

  • 阅读开篇文章 - 包含类 FunzioniSessione(名为 funzioniComuni.jar)的包位于 WEB-INF\lib 文件夹中
  • 这就是为什么 - 是类路径中的 lib 文件夹?
  • 通常 Tomcat WEB-INF\lib 文件夹默认在类路径中,我不知道我的 ISP 是否如此。但愿如此。还有哪些可能是问题?
  • 是的,在某些容器(包括 tomcat 旧版本)上有些,这不在类路径上,这可能会导致问题。
  • 我不认为 Tomcat 7 是 Tomcat 的旧版本。还有其他建议吗?
猜你喜欢
  • 2012-02-15
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
  • 2015-05-20
  • 2017-04-29
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多