【问题标题】:HTTP Status 500 - Unable to compile class for JSP Java8, Tomcat8.5HTTP 状态 500 - 无法为 JSP Java8、Tomcat8.5 编译类
【发布时间】:2017-01-17 20:18:14
【问题描述】:

我有一个主要的jsp 文件,它使用boxers 包中的java 类。但是当我尝试运行jsp 时,出现以下错误: HTTP Status 500 - Unable to compile class for JSP:in the jsp file: /web/date_info.jsp boxers.B cannot be resolved to a type.

date_info.jsp

 <%@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>
        <p><%= boxers.B.voice()%></p>

    </body>
</html>

B类:

 package boxers;


public class B {
    public static String voice()
    {
        return "HELLO";
    }
}

我已阅读版本之间的冲突可能导致此问题;我的 Java 版本是 8,Tomcat 8.5..

我查看了webapps/my_app/build/web/WEB-INF/classes/boxers 文件夹,其中有一个B.class 文件...

编辑:我想知道那些投反对票的人是否至少知道问题的答案。

【问题讨论】:

  • 尝试在你的jsp页面中导入包boxers,比如&lt;%@ page import="boxers" %&gt;,然后你可以在不指定包的情况下访问类
  • boxers.B cannot be resolved to a type 就像 searchnig 搜索一个名为 boxers 的类,其中包含一个名为 B 的属性
  • @El Sam 我不能只导入拳击手 - netbeans 需要 '.'。导入&lt;%@ page import="boxers.*" %&gt; 并使用B.voice() 不会改变事情..B cannot be resolved
  • 好的,导入B类&lt;%@ page import="boxers.B" %&gt;然后就可以直接调用voice()
  • @El Sam Netbeans 突出显示它 - 如果没有 Bboxers.B 在它之前找不到方法..

标签: java jsp tomcat servlets


【解决方案1】:

想通了。应用程序未正确部署。 here 描述的部署过程帮助了我。特别是 - copying web application archive file (.war)copying unpacked web application directory。我的主要错误是最初我以错误的方式应用了第二种方法 - 复制了由 Netbeans 创建的 app 目录中的所有文件夹(build、src、web 等),而只有 NetbeansProjects/app_name/build/webcontent 应该被复制到tomcat/app_name/。 或者只是将NebeansProjects/app_name/dist/ 的战争文件复制到tomcat/webapps - 几秒钟后,tomcat 将自己创建包含文件的适当文件夹。

tl;dr:错误部署,复制粘贴 warweb 的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-27
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多