我在Eclipse中遇到以下错误:
HTTP状态500 - 无法为JSP编译类:
输入例外报告
message无法为JSP编译类:
description服务器遇到阻止它的内部错误 完成此请求。
异常org.apache.jasper.JasperException:无法编译类 对于JSP:
生成的java文件中的行1发生错误: [C:\用户[...] metadata.plugins \ org.eclipse.wst.server.core \ TMP1 \工作\卡塔利娜\本地主机[...] \组织\阿帕奇\ JSP \测试[...] _jsp.java] com.fasterxml.jackson.core.JsonParseException类型不能 解决。它是从所需的.class文件间接引用的
生成的java文件中的行:[19]发生错误: [C:\用户[...] metadata.plugins \ org.eclipse.wst.server.core \ TMP1 \工作\卡塔利娜\本地主机[...] \组织\阿帕奇\ JSP \测试[...] _jsp.java] 只能导入一种类型。 com.fasterxml.jackson.core.JsonParseException解析为包
在jsp文件中的第23行发生错误:/test/[...].jsp 方法get(String)从类型[...]引用 缺少类型JsonParseException
堆栈跟踪: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:468) 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:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
注意Apache中提供了根本原因的完整堆栈跟踪 Tomcat / 7.0.47日志。
通常我理解这意味着我使用的类需要另一个不在类路径上的类,由@Arne here
回答但是类在类路径中,当我从.java文件中的main方法运行它时,一切正常。但是当我从Tomcat服务器上的.jsp文件运行它时,它不再起作用了。这怎么可能?
代码
JSP File和java main方法都调用相同的类Wiki Picture,它基本上只使用Wikipedia API来获取文章图片。
奇怪的是,当Tomcat服务器上的jsp文件抛出异常时,main方法才有效。
JSP文件
<%@ page import="json.*" %>
<%@ page import="main.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.fasterxml.jackson.databind.*" %>
<%@ page import="com.fasterxml.jackson.core.*" %>
<%@ page import="com.fasterxml.jackson.core.JsonParseException" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
ArrayList<WikiPicture> pictures = WikiPicture.get("London");
for (WikiPicture picture: pictures) {
System.out.println("picture: " + picture.getURL());
}
%>
</body>
</html>
Java主要方法
package json;
import java.util.ArrayList;
import com.fasterxml.jackson.core.JsonParseException;
public class JsonTest {
public static void main(String args[]) {
ArrayList<WikiPicture> pictures = null;;
try {
pictures = WikiPicture.get("Lausanne");
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (WikiPicture picture: pictures) {
System.out.println("picture: " + picture.getURL());
}
}
}
答案 0 :(得分:0)
将jackson-core.jar
放在WEB-INF/lib
目录中。您的JSP无法找到类com.fasterxml.jackson.core.JsonParseException