Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取错误消息";只能导入类型…“;尝试执行jsp页面时_Java_Jsp - Fatal编程技术网

Java 获取错误消息";只能导入类型…“;尝试执行jsp页面时

Java 获取错误消息";只能导入类型…“;尝试执行jsp页面时,java,jsp,Java,Jsp,我有一个jsp页面,试图引用一些用户定义的类。这些类使用以下行进行编译: package pikefin; 并将其放入目录中: /var/lib/tomcat6/webapps/examples/jsp/JSPEssbase2/WebContent/WEB-INF/classes/pikefin 以下是我的jsp代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF

我有一个jsp页面,试图引用一些用户定义的类。这些类使用以下行进行编译:

package pikefin;
并将其放入目录中:

/var/lib/tomcat6/webapps/examples/jsp/JSPEssbase2/WebContent/WEB-INF/classes/pikefin

以下是我的jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="pikefin.PopulateSpreadsheet" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
out.println(" Hello Oracle World5");
PopulateSpreadsheet tmp = new PopulateSpreadsheet();

out.println(" Hello Oracle World4"); %> 
</body>
</html>
更新1:

因此,我将导入语句更改为:

并创建了一个新的目录结构,如下所示:

[ollie@devdataload jsp]$ ls -Rp JSPEssbase3/
JSPEssbase3/:
essbasedatasource.jsp  META-INF/  WEB-INF/

JSPEssbase3/META-INF:
MANIFEST.MF

JSPEssbase3/WEB-INF:
classes/  lib/

JSPEssbase3/WEB-INF/classes:
pikefin/

JSPEssbase3/WEB-INF/classes/pikefin:
BatchSample$CellAddress.class  Logs.class
BatchSample.class              PopulateSpreadsheet.class
CustomBufferedWriter.class     SkipLoadException.class
DBFunctions.class              TestException.class
EssbaseConnect.class           UtilityFunctions.class

JSPEssbase3/WEB-INF/lib:
现在我得到了这个错误消息:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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. pikefin.PopulateSpreadsheet resolves to a package

An error occurred at line: 13 in the jsp file: /jsp/JSPEssbase2/essbasedatasource.jsp
PopulateSpreadsheet cannot be resolved to a type
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 13 in the jsp file: /jsp/JSPEssbase3/essbasedatasource.jsp
PopulateSpreadsheet cannot be resolved to a type
10: <body>
11: <% 
12: out.println(" Hello Oracle World5");
13: PopulateSpreadsheet tmp = new PopulateSpreadsheet();
14: 
15: out.println(" Hello Oracle World4"); %> 
16: </body>
类型异常报告
消息
说明服务器遇到内部错误(),无法完成此请求。
例外
org.apache.jasper.jaspereException:无法为JSP编译类:
jsp文件:/jsp/JSPEssbase3/essbasedatasource.jsp的第13行出现错误
无法将PopulateSpreadsheet解析为类型
10: 
11:  
16: 
路径

/var/lib/tomcat6/webapps/examples/jsp/JSPEssbase2/WebContent/WEB-INF/classes/pikefin

应该是

/var/lib/tomcat6/webapps/examples/WEB-INF/classes/pikefin

WEB-INF
必须直接进入webapp项目文件夹。

路径

/var/lib/tomcat6/webapps/examples/jsp/JSPEssbase2/WebContent/WEB-INF/classes/pikefin

应该是

/var/lib/tomcat6/webapps/examples/WEB-INF/classes/pikefin


WEB-INF
必须直接进入webapp项目文件夹。

您需要将其设置为pikefin.PopulateSpreadsheet.*或类似文件,如果您有,则错误是正确的

Only a type can be imported. pikefin.PopulateSpreadsheet resolves to a package

您需要将其设置为pikefin.PopulateSpreadsheet.*或类似的格式,因为您的错误是正确的

Only a type can be imported. pikefin.PopulateSpreadsheet resolves to a package

我在项目中使用eclipse时遇到了同样的问题。我通过将java代码的输出文件夹更改为
“..\WEB-INF\classes”
解决了这个问题。我在项目中使用eclipse时遇到了同样的问题。我通过将java代码的输出文件夹更改为
“..\WEB-INF\classes”

解决了这个问题。另外,一些类打包在jar文件中,充当zip文件,因此必须提取,否则将找不到它们。这发生在我身上的是
chemistry-opencmis-osgi-client-0.7.0.jar
。在本例中,jsp无法定位所需的导入,这是因为在jar文件中有一个名为lib的子目录,其中包含我所需的实际jar。在我看来,如果把它们打包成zip或tar.gz,而不是jar,那就更好了


其余的都是正确的,只要这些jar文件放在
WEB-INF/lib
中,它们就可以顺利导入。

作为补充说明,一些类打包在jar文件中,充当zip文件,因此必须提取,否则将找不到它们。这发生在我身上的是
chemistry-opencmis-osgi-client-0.7.0.jar
。在本例中,jsp无法定位所需的导入,这是因为在jar文件中有一个名为lib的子目录,其中包含我所需的实际jar。在我看来,如果把它们打包成zip或tar.gz,而不是jar,那就更好了


其余的都是正确的,只要将这些jar文件放入
WEB-INF/lib
中,它们就可以顺利导入。

这个JSP编译错误实际上有点误导。它隐藏着一个
NoClassDefFoundError
。这个JSP编译错误实际上有点误导。这是一个
NoClassDefFoundError
。如果您使用OSGI和Felix,请确保您的捆绑包已经启动,并且所有需要的包都已导出。如果您使用OSGI和Felix,请确保您的捆绑包已经启动,并且所有需要的包都已导出。