当我尝试通过 Tomcat 打开我的 jsp 时,我收到以下消息:
无法解析类型 org.json.simple.JSONObject。它是从所需的 .class 文件中间接引用的。
Ejercicio 类型中的 getJSONObject() 方法引用了缺失的 JSONObject 类型。
我有一个像这样的 java 类:
package E;
import org.json.simple.*;
import javax.json.*;
import org.json.*;
public class Ejercicio {
public int a;
public String b;
public Ejercicio (int a, String b) {
this.a=a;
this.b=b;
}
public JSONObject getJSONObject() {
JSONObject obj = new JSONObject();
obj.put("a", a);
obj.put("b", b);
return obj;
}
}
我的jsp如下:
<%@page import="java.io.*" %>
<%@page import="java.util.*"%>
<%@page import="E.Ejercicio"%>
<%@page import="javax.json.*"%>
<%@page import="org.json.simple.*"%>
<%@page import="org.json.*"%>
<%@page import="net.sf.json.*" %>
<%
ArrayList<Ejercicio> miArray = new ArrayList<Ejercicio>();
miArray.add(new Ejercicio (1,"Hola"));
miArray.add(new Ejercicio (2,"Caracola"));
miArray.add(new Ejercicio (3,"Perola"));
for (Ejercicio temp:miArray) {
out.println("<p>"+temp.b+"</p>");
}
JSONArray jsonArray = new JSONArray();
for (int i=0; i < miArray.size(); i++) {
jsonArray.put(miArray.get(i).getJSONObject());
}
%>
我在 WEB-INF 中的 lib 文件夹和 Tomcat lib 中添加了很多 jar 试图解决没有结果的问题(commons-beanutils-1.8.1,commons-collections-3.2.1,commons-lang-2.5 , commons-logging-1.1.1, ezmorph-1.0.6, java-json, javax.json-1.0, json-lib-2.4-jdk15, json-rpc-1.0, json-simple-1.1.1-sources, org .json)。
当我编译 java 类时,我收到“一些输入文件使用未经检查或不安全的操作”消息。这可能与jps没有编译有关吗?
原文由 Erik Escriche 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,您的项目中不需要
json-simple.jar
。因此删除
import org.json.simple.*
其次,最佳做法是仅从您的 jar 中导入所需的类。因此您可以将
import org.json.*;
替换为