Tomcat / Windows 7上的HTTP状态500

时间:2012-08-12 16:34:11

标签: jsp tomcat tomcat7

对于使用外部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;堆栈跟踪:)   这阻止了它完成这个请求。“


目录结构

  • web应用
    | 应用
    |
    _ index.jsp
    | _
    WEB-INF
    ...... |
    _ 班级 ............. | _ mypack
    .................... |
    _sou.class,test.war,mypack.jar

系统信息: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

2 个答案:

答案 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.*” %>