Eclipse错误:间接从所需的.class文件引用,从.java文件但不是Tomcat服务器上的.jsp文件?

时间:2017-03-06 15:36:56

标签: java eclipse jsp tomcat

我在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());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

jackson-core.jar放在WEB-INF/lib目录中。您的JSP无法找到类com.fasterxml.jackson.core.JsonParseException

相关问题