簡體   English   中英

無法為JSP編譯類。 的Tomcat 7.0.82

[英]Unable to Compile class for JSP. Tomcat 7.0.82

我已經從Eclipse中的Java Web項目創建了一個war文件。 它非常正確地在WEB-INF目錄中創建了一個classeslib文件夾,其中包含已編譯的源代碼和引用的庫。 當我在Apache Tomcat 7.0.82上部署該項目時,它在除Main2.jsp之外的大多數頁面上運行正常,在Main2.jsp我得到以下異常

類型例外報告

消息無法為JSP編譯類

描述服務器遇到內部錯誤,導致服務器無法滿足此請求。

例外

org.apache.jasper.JasperException:無法為JSP編譯類org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:675)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364)org。 apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Main.jsp的代碼如下

<%@page import="assemble_xml.*"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%> 
<%@page import="org.json.JSONObject"%>
<%@page import="org.json.*;"%>
<%
System.out.println("\n*** Inside Main2.jsp");
String data1 = request.getParameter("data");
String sourceApiId = request.getParameter("sourceApiId");
String bpFile = request.getParameter("bpFile");
String context = getServletContext().getRealPath("/");
//data1 = "{000:{name:mkyong.com,messages:[msg 1,msg 2,msg 3],age:100},001:{name:mkyong.com,messages:[msg 1,msg 2,msg 3],age:100}}";
JSONObject jsonObject = new JSONObject(data1);

System.out.println("\n*** Inside Main2.jsp: jsonObject"  + data1);

Operation op1 = new Operation ("");

HashMap<String, Operation> hm_xml_att  = op1.readOpAttribFromXML2(context+bpFile, jsonObject);
op1.writeXML(hm_xml_att,context + "auth_refine_output" + File.separatorChar + sourceApiId);

//BP bp = new BP(context,context + "\\auth_refine_output\\Mappings.txt",context + "\\auth_refine_output\\" + sourceApiId,context + "\\auth_refine_output\\OFBiz_Process.xml");

//response.setContentType("text/html"); 
//response.getWriter().write("Dataflow file (" +context + "\\auth_refine_output\\OFBiz_Process.xml) generated successfully");  
//System.out.println("\n*** Inside Main2.jsp: Dataflow file (" +context + "\\auth_refine_output\\OFBiz_Process.xml" + ") generated successfully");
%> 

我很確定問題是由於以下兩種進口引起的

<%@page import="org.json.JSONObject"%>
<%@page import="org.json.*;"%>

因為,當我刪除它們時,錯誤仍然相同,但是現在是由於未將JsonObject解析為一種類型。 具有諷刺意味的是,我在WEB-INF\\lib文件夾中有三個以上的文件,似乎包含JsonOject 這些文件是json-20090211.jar json-20160810.jarjson-20160810.jarjson-lib-2.4-jdk15.jar

所有這三個文件也都在eclipse項目中存在,但是它在eclipse中可以完美地運行。 我不是該項目的作者,也不是Java專業人士。 因此,我想知道為什么為什么要包含三個僅作為JSON的文件作為dep? 以及為什么它在eclipse中可以正常運行,但不能在Apache Tomcat 7中運行呢?

最后導入的分號就是問題所在。 從改變線

<%@page import="org.json.*;"%>

<%@page import="org.json.*"%>

解決了問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM