【问题标题】:My webapplication works fine when testing it in IDE, but doesnt work on webserver (tomcat)我的 Web 应用程序在 IDE 中测试时工作正常,但在 Web 服务器 (tomcat) 上不起作用
【发布时间】:2012-05-15 06:38:42
【问题描述】:

我已经创建了我的第一个 Web 应用程序。我设置了我的网络服务器(tomcat+apache2)并尝试在其上部署应用程序。当我测试应用程序时,它在我的测试环境中运行良好,但是在创建战争并部署它时出现以下错误(异常):

HTTP 状态 500 -

输入异常报告

消息

描述服务器遇到了一个内部错误(),导致它无法完成这个请求。

异常

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

生成的 java 文件中的第 14 行出现错误 只能导入一个类型。 bitcoin.BitcoinHandler 解析为一个包

在 jsp 文件中的第 16 行发生错误:/Balance.jsp BitcoinHandler 无法解决 13:双倍你的币=0.0; 14:随机 rand=新随机(); 15:
16: balance=new Double(BitcoinHandler.getBalance("give")); 17:
18:
19:如果(余额>2.5)

堆栈跟踪: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469) org.apache.jasper.compiler.Compiler.compile(Compiler.java:378) org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

注意 Apache Tomcat/7.0.27 日志中提供了根本原因的完整堆栈跟踪。 Apache Tomcat/7.0.27

应用程序无法在 WEB-INF/classes 文件夹中找到我的课程。不知道为什么!???有人可以帮帮我吗?

评论中提供的代码

<%@page import="bitcoinmonitor.BitcoinHandler"%>
<%@page import="java.util.Random"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<% 
double balance=0.0;
double yourcoins=0.0;
Random rand=new Random();
balance=new Double(BitcoinHandler.getBalance("give"));

【问题讨论】:

    标签: java class jsp tomcat web-inf


    【解决方案1】:

    实际上您在异常报告中有一些信息,请仔细查看此处line: 16 in the jsp file: /Balance.jsp,您也可以在此处放置此文件中的代码以向我们提供更多信息。据我所知,BitcoinHandler 对象有问题,可能是您没有将此类导入您的Balance.jsp

    【讨论】:

    • 你创建了 BitcoinHandler 的实例吗?
    • 这是该 JSP 文件中唯一必要的代码..在返回余额之后..
    • 如何使用 'balance = BitcoinHandler.getBalance("give");' 而不是 balance=new Double(BitcoinHandler.getBalance("give")); ?
    • @muenchnair:请下次更新您的问题,不要在评论中添加代码(我添加了代码)。
    【解决方案2】:

    这告诉我你的测试和生产环境不一样。在失败的环境中,您所做的依赖或假设没有得到正确解决。

    您在 JSP 中使用 scriptlet 代码,这是自找麻烦。我建议学习 JSTL 并编写 servlet 来验证和绑定请求、完成用例并传递 JSP 显示所需的信息。早在 90 年代,您的设计就被证明可扩展性不佳,成为维护的噩梦。

    【讨论】:

    • 我可以通过设置相同的测试环境来处理这个问题吗?
    • 现在我刚刚设置了新的 IDE(环境现在与我的网络服务器完全相同),它“仍然”不起作用..
    【解决方案3】:

    问题在于 JSP 子目录。我现在将 JSP 放入根目录,它终于像魅力一样工作了。

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 2012-10-28
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      相关资源
      最近更新 更多