2014-01-09 1 views
1

Simple XML API를 사용하여 Android 앱에서 서블릿으로 전송되는 XML 데이터를 직렬화 및 비 직렬화합니다. 역 직렬화가 Android 앱에서 정상적으로 작동합니다. 같은 코드가 서블릿에서 사용되는 때 나는 다음과 같은 오류가 발생합니다 :Simple XML API를 사용하려고 할 때 "ClassNotFoundException : org.simpleframework.xml.Serializer"

SEVERE: Servlet.service() for servlet [servlettest.ServletTest] in context with path [/test] threw exception [Servlet execution threw an exception] with root cause 
java.lang.ClassNotFoundException: org.simpleframework.xml.Serializer 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 
    at servlettest.ServletTest.doPost(ServletTest.java:104) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

하이라이트 내가 jar 파일이 이클립스에 수입되어 있는지 확인 만든 java.lang.ClassNotFoundException: org.simpleframework.xml.Serializer

것. "속성"윈도우의 "주문 및 내보내기"탭 아래에 체크 표시가되어 있습니다. 여기

는 서블릿에 안드로이드에서 잘 작동하지만 실패 코드 :

Serializer serializer = new Persister(); 
      File source = new File("/home/kk/workspace/testfile.xml"); 

      Reg_info_xml parse_xml = serializer.read(Reg_info_xml.class, source); 
      String name = parse_xml.getUser_name(); 
      System.out.print(name); 

답변

1

서버 클래스 경로에있는 클래스 ins't, 그래서의 WEB-INF/lib 폴더에 항아리를 넣어 귀하의 프로젝트에

+0

행운을 빈다. 그 폴더에 넣었지만 여전히 같은 오류가 발생합니다. 나는 외부 항아리로 그것을 수입한다, 그렇지? –

+0

알았습니다! Eclipse에서/lib 디렉토리를 새로 고쳐 jar 파일을 감지하도록해야했습니다. 감사합니다. :) –