[英]JSP does not create class of servlet on linux
這是我的JSP代碼,從html文件中調用...
<%
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);
%>
我使用Eclipse在Windows上開發了一個項目,並嘗試在Windows上進行WAR部署測試。 它按我的要求很好地工作。
但是,當我將WAR文件復制到Linux並嘗試在其上進行部署時, 新的SERVLETCLASS(id)無法正常工作。 因此終端僅顯示DEBUG1和DEBUG2。
當然,我在Linux中更改了server.xml
Windows和Linux之間有區別嗎? 特別是在CentOS 7上。
ps我用的是Apache Tomcat 8.0.24
編輯
抱歉,我無法上傳課程代碼,因為這是我公司的工作之一。 它只調用JavaSE中的幾種方法。 我將JavaSE項目移植到JavaEE。
但是多虧了RC。我想我發現了日志顯示的原因
日志 (從catalina.-today-.log)/單擊以查看大圖
我手動安裝了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
(這真的是您的類的名稱嗎?)包含一個無限循環(該請求SERVLETCLASS
無休止),或者它拋出Exception或Error並被其他地方吞沒。
您可以通過將調用包裝在try/catch
子句中來嘗試調試它:
System.out.println("DEBUG2");
try {
SERVLETCLASS d = new SERVLETCLASS(id);
} catch (Throwable t) {
t.printStackTrace();
}
System.out.println("DEBUG3");
這樣,您將看到是否存在被吞噬的異常或錯誤。 如果找到了,請從那里繼續。
另外,我希望您的SERVLETCLASS實際上不是servlet,因為通常您自己不會創建servlet,而是將此任務留給應用程序服務器。 如果您以此處的方式實例化,請將來的維護者幫忙,並在非servlet類中使用您的邏輯。
我通過手動重新安裝所有tomcat / httpd相關組件來解決此問題。
謝謝大家
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.