gpt4 book ai didi

java - JSP 不在 linux 上创建 servlet 类

转载 作者:行者123 更新时间:2023-11-28 23:29:59 27 4
gpt4 key购买 nike

这是我从 html 文件调用的 JSP 代码...

<%
System.out.println("DEBUG1");
int id = (request.getRequestedSessionId()+request.getRemoteAddr()).hashCode();
System.out.println("DEBUG2");
SERVLETCLASS d = new SERVLETCLASS(id); // Stuck here
System.out.println("DEBUG3");
String sen = request.getParameter("data");
String name = request.getParameter("name");
System.out.println("SEN: "+sen);
String rtn = d.runJob(name, sen);
System.out.println("RTN: "+rtn);
%>

我在Windows上用Eclipse开发了一个项目,在Windows上试过WAR部署测试。它工作得很好,如我所愿。

但是当我将 WAR 文件复制到 Linux 并尝试在其上部署时,new SERVLETCLASS(id) 无法正常工作。所以终端只显示 DEBUG1 和 DEBUG2。

当然,Linux下我改了server.xml

Windows 和 Linux 之间有区别吗?特别是在 CentOS 7 上。

附注我用的是 Apache Tomcat 8.0.24



编辑

很抱歉,我无法上传类(class)代码,因为这是我公司工作的一部分。它只是像在 JavaSE 中那样调用几个方法。我将 JavaSE 项目移植到 JavaEE。

但是多亏了 RC,我想我找到了它发生的原因,正如日志显示的那样

日志(来自catalina.-today-.log)/点击查看大图

enter image description here

我手动安装了 apr、apr-util、pcre 和 tomcat。但为什么会这样?

还有一个错误在 Windows 中不存在,

03-Aug-2015 15:20:15.546 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:ChatBot' did not find a matching property.

好吧,我认为这不是问题,但我在 Linux 中也安装了 eclipse。

最佳答案

代码看起来很奇怪 - 似乎缩写得很厉害?有两种选择——要么你的 SERVLETCLASS(这真的是你的类的名称吗?)包含一个无限循环(并且请求永无止境),要么它抛出一个异常或错误被其他地方吞没.

您可以通过将调用包装在 try/catch 子句中来尝试调试它:

System.out.println("DEBUG2");
try {
SERVLETCLASS d = new SERVLETCLASS(id);
} catch (Throwable t) {
t.printStackTrace();
}
System.out.println("DEBUG3");

这样您就可以查看是否有异常或错误被吞没。如果您发现了什么,请从那里继续。

此外,我希望您的 SERVLETCLASS 实际上不是一个 servlet,因为您通常不会自己创建 servlet,而是将此任务留给应用程序服务器。如果您按照此处的方式实例化逻辑,请为 future 的维护者提供一个非 servlet 类中的逻辑。

关于java - JSP 不在 linux 上创建 servlet 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31780081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com