When I try to open my jsp through Tomcat, I receive the following messages:
The type org.json.simple.JSONObject cannot be resolved. It is indirectly referenced from required .class files.
The method getJSONObject() from the type Ejercicio refers to the missing type JSONObject.
I have a java class that goes like this:
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; } } My jsp goes as follows:
<%@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()); } %> I have added a lot of jars to both the lib folder inside WEB-INF and the Tomcat lib trying to solve the problem with no results (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).
When I compiled the java class I got the "Some input files use unchecked or unsafe operations" message. Could this be related to the jps not compiling?
7 Answers
You are missing json-simple-1.1.1.jar from your classpath.
if you are using Maven, add below into your pom.xml.
<dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1.1</version> </dependency> Or you can download it from here.
1Firstly, you don't need the json-simple.jar in your project.
Therefore remove the import org.json.simple.*
Secondly, the best practice is to import only the required classes from your jar.Therefore you can replace import org.json.*; by
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONString; for me definetely downloded the jar and add it to eclipse simple
just follow these steps 1. download the .jar file at this link 2. locate and extract the json.jar file
in eclipse -right click on your project and go to build path -add external jar -hit apply
that's
it ; hope it helps guys
Is some version of json-simple.jar in your project libs ?
You can download the requisite jar, for me what worked is the downloading of my missing json20140107 jar and adding the import statements as below:
import org.json.JSONException;
import org.json.simple.JSONObject;
I didn't see the right answer anywhere but my TomCat JSON library problem was with the artifact deployment. If you're using intelliJ, go to project structure >> artifacts and add the jar to your lib folder
Check out my project structure
This works for the org.json package:
Copy the source files from here
Note: this is the source code link (JSON-java) taken from from
into \src\org\json folder
In Eclipse, click the Open perspective button, then Resource. 
Right click on org.json and then hit Refresh to add the java source code into the project.