[英]Unable to Compile class for JSP. Tomcat 7.0.82
我已經從Eclipse中的Java Web項目創建了一個war
文件。 它非常正確地在WEB-INF
目錄中創建了一個classes
和lib
文件夾,其中包含已編譯的源代碼和引用的庫。 當我在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.jar
, json-20160810.jar
和json-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.