问题 只能导入一种类型。 ABC解析为一个包


(我已经阅读了关于这个主题的其他问题,但没有一个有帮助)

好的,我正在尝试将Java类导入到我的JSP文件中,但Tomcat给了我错误:

org.apache.jasper.JasperException:无法编译JSP的类:

An error occurred at line: [16] in the generated java file: [I:\path\to\index_jsp.java]
Only a type can be imported. org.runas.XKCDUtils resolves to a package

An error occurred at line: 7 in the jsp file: /index.jsp
XKCDUtils cannot be resolved
4:  String data = null;
5:  int finalComic = 1;
6:  int comicNo = 1;
7:  finalComic = XKCDUtils.getFinalComic();
8: 
9:  if (request.getParameter("page") != null)
10:         comicNo = Integer.parseInt(request.getParameter("page"));

我的JSP文件中的import语句是:

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>

我的目录结构的相关部分是:

webapps
`-ROOT
 `-index.jsp
 |-WEB-INF
  `-web.xml
  |-classes
   `-org
    `-runas
     `-XKCDUtils.class

我很困惑,因为 org.runas.XKCDUtils resolves to a package,但它显然是一个类文件,我认为是正确的目录。

请帮助!

(并且不要惩罚我使用scriptlet,我正在尝试清理它们!)


3107
2018-04-12 03:47


起源

看一眼 这个答案。将导入拆分为3个单独的导入,并可能在最后一个添加分号。 - Sotirios Delimanolis


答案:


好的,这很奇怪。 我将导入分为三个导入,

<%@page import="java.io.*" %>
<%@page import="java.net.*" %>
<%@page import="org.runas.XKCDUtils" %>

它神奇地决定工作。然后当我改变进口时,

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>

它神奇地决定继续工作。

也许它与重启Tomcat有关?好吧,无论如何它现在都有效。


7
2018-04-12 07:17



也许它与重启Tomcat有关?  - 几乎:安装库后,需要重启Tomcat才能加载它。显然,你的问题的答案是:重启Tomcat。随意添加新答案并选择为已接受。 - Alberto


我有同样的问题;通过停止服务器(在我的情况下为Tomcat)并重建项目来解决。


3
2017-12-23 11:25



重启服务器也为我解决了问题。 - Templar


我不知道究竟是什么导致了错误,但我改变了

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>

<%@page import="java.io.*, java.net.*, org.runas.*" %>

它工作。我对错误的解释是,由于某种原因,Tomcat认为XKCDUtils是一个包,而不是包中的类。使用*导入然后明确表示它正在导入类。


2
2017-07-11 16:10