2013-03-04 3 views
2

부두에 의해 사용되는 간단한 서블릿이 있습니다.부두 패키지 org.json.simple가 존재하지 않습니다.

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 

나는이 오류 받고 있어요 :

이 내 서블릿의 단편 내가 json-simple-1.1.1.jar이 있지만

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; 

을 (http://code.google.com/p/json-simple/downloads/detail?name=json-simple-1.1.1.jar에서 다운로드) 내 WEB_INF/lib 디렉토리에 ... 어떤 ide 왜?

답변

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 
그래서 당신은 당신의 명령을 수정해야
+0

나에게 이것을 undestand하자. 이렇게해야한다면 왜 내 라이브러리를 WEB_INF/libs에 넣어야합니까? 그것은 단지 국제 대회입니까? 내 servelt이 사용하는 도서관을 내가 원하는 곳 어디에서나 유지할 수 있습니까? – mnowotka

+0

WEB-INF/lib에 jar를 저장하면 (java 또는 jetty, 나도 몰라)이 파일을 찾아서 필요할 때 사용할 수 있습니다. – mnowotka

+0

또는 Apache Maven과 같은 빌드 도구를 사용하십시오.이 도구는 빌드 클래스 경로와 WEB-INF/lib를 관리합니다. 단 하나의 선언 된' '집합에서 가져올 수 있습니다. –

관련 문제