我有一个简单的servlet供jetty使用。
这是我的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);
}
}
调用后:
javac -cp /usr/share/jetty/lib/servlet-api-2.5.jar Oscar4Servlet.java
我收到了这个错误:
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;
虽然我的json-simple-1.1.1.jar
目录中有WEB_INF/lib
(从http://code.google.com/p/json-simple/downloads/detail?name=json-simple-1.1.1.jar下载)...有什么想法?
答案 0 :(得分:0)
编译时需要指定完整的编译类路径。因此,您需要将命令修改为:
javac -cp /usr/share/jetty/lib/servlet-api-2.5.jar:<path-to>/json-simple-1.1.1.jar Oscar4Servlet.java
(当然还有其他依赖项)
或者,如果您现在所有的依赖项都在/some-path/WEB-INF/lib
中,那么您可以执行以下操作:
javac -cp /usr/share/jetty/lib/servlet-api-2.5.jar:/some-path/WEB-INF/lib/* Oscar4Servlet.java