I have simple servlet to be used by jetty.
This is fragment of my servlet:
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
public class Oscar4Servlet extends HttpServlet
{
...
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
request.setCharacterEncoding("utf8");
response.setCharacterEncoding("utf8");
response.setContentType("application/json");
PrintWriter out = resp.getWriter();
JSONObject obj = new JSONObject();
obj.put("message", "hello from server");
out.print(obj);
}
}
After invoking:
javac -cp /usr/share/jetty/lib/servlet-api-2.5.jar Oscar4Servlet.java
I'm getting this error:
Oscar4Servlet.java:5: error: package org.json.simple does not exist
import org.json.simple.JSONObject;
^
Oscar4Servlet.java:6: error: package org.json.simple does not exist
import org.json.simple.JSONValue;
Although I have json-simple-1.1.1.jar
(downloaded from http://code.google.com/p/json-simple/downloads/detail?name=json-simple-1.1.1.jar) in my WEB_INF/lib
directory… Any ideas why?
Best Answer
When compiling you need to specify the full compilation classpath. So you need to modify your command to:
(and of course any other dependencies)
Alternatively, if you now that all your dependencies are in
/some-path/WEB-INF/lib
then you can do: