对于使用外部Java类定义的外部JSP页面的所有JSP页面,我不断收到错误 HTTP Status 500 。这是代码
的index.jsp
<%@page import="mypack.sou" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<%
sou o=new sou();
int r=o.hi();
out.println(r);
%>
</body>
</html>
包 mypack 下的sou.java
package mypack;
public class sou {
public int hi()
{
return 0;
}
}
错误:
输入例外报告
“message无法为JSP编译类:行发生错误: 14生成的java文件中只能导入一个类型。 mypack.sou 解析为包在jsp文件中的第18行发生错误: /web/index.jsp无法解析为类型15:
您好 世界!
16:17:&lt;%18:sou o = new sou(); 19:int r = o.hi(); 20: 通过out.println(R); 21:%&gt;在jsp文件中的第18行发生错误: /web/index.jsp无法解析为类型15:Hello 世界!
16:17:&lt;%18:sou o = new sou(); 19:int r = o.hi(); 20: 通过out.println(R); 21:%&gt;堆栈跟踪:
description服务器遇到内部错误(无法执行 JSP的编译类:在生成的第14行发生错误 java文件只能导入一个类型。 mypack.sou解析为 package jsp文件中的第18行:/web/index.jsp发生错误 sou无法解析为15型:
Hello World!
16:17:&lt;% 18:sou o = new sou(); 19:int r = o.hi(); 20:out.println(r); 21:%&gt;一个 行中出现错误:jsp文件中的18:/web/index.jsp sou不能 被解决为15型:Hello World!
16:17:&lt;%18:sou o = new sou(); 19:int r = o.hi(); 20:out.println(r); 21:%&gt;堆栈跟踪:) 这阻止了它完成这个请求。“
系统信息:Win 7 Ultimate X64,Apache Tomcat 7.0.29
java版“1.7.0_02”
Java(TM)SE运行时环境(版本1.7.0_02-b13)
Java HotSpot(TM)客户端VM(内置22.0-b10,混合模式,共享)
Tomcat目录拥有完全权限!
我不得不搬到GlassFish,在那里相同的代码工作!但问题仍然存在于Tomcat
答案 0 :(得分:0)
尝试添加“;”到你的进口声明。
像这样修改:
<%@page import="mypack.sou;" %>
<!DOCTYPE html> //Remove content type
可能这看起来像一个奇怪的答案,但请参阅此参考
https://stackoverflow.com/a/1858635/586836
编辑:
否则:
尝试手动将该java文件编译为类,然后将其放在classes目录中并检查。
答案 1 :(得分:0)
尝试使用
mypack.sou
代替sou
;
您必须在JSP中使用完全限定的类名,因为所有JSP都由Container转换为普通的旧Java servlet代码。
或者你可以改为导入你的包裹:
<%@ page import=”mypack.*” %>