2013-01-07 4 views
1

저는 명령 줄 Java 프로그램 (html 분석기)을 작성했으며이를 웹 서비스로 trasform하려고합니다.서블릿에서 라이브러리를 찾을 수 없습니다.

일부 정보를 수집하고이를 내 프로그램으로 전달하는 jsp 파일을 작성했습니다. 문제는 서블릿이 HTML 소스를 분석하기 전에 HTML 소스를 아름답게 사용하는 라이브러리의 항아리를 찾을 수 없다는 것이므로 (HTMLCleaner) 예외 때문에 예외를 중지합니다. 나는 이미 내 웹 서비스의 프로젝트에 대한 라이브러리와 명령 줄 버전과 HtmlCleaner의 항아리를 포함했다

SEVERE: Servlet.service() for servlet [Validate] in context with path [/MyWebService] threw exception [Servlet execution threw an exception] with root cause java.lang.NoSuchMethodError: org.htmlcleaner.HtmlCleaner.(Ljava/io/File;)V at it.mypackage.mybeautifierclass.(mybeautifierclass.java:39)

내가 IDE로 넷빈즈 7.1.2을 사용하고 있습니다 : 톰캣 내부

내가이 메시지를 찾을 수 기록 완벽하게 작동합니다.

왜 HTMLCleaner를 찾을 수 없습니까?

답변

0

tomcat이 다음과 같이 개발/컴파일 한 라이브러리와 다른 버전의 라이브러리를 찾은 것 같습니다. 클래스는 있지만 컴파일 타임에 사용 된 인터페이스가 없습니다.

독립 실행 형을 사용하고있는 버전과 웹 응용 프로그램의 WEB-INF/lib 디렉토리에있는 버전을 확인하십시오. 또한 여러 버전을 사용할 수 있습니다 (예 : 바람둥이의 /lib 디렉토리에있는 전역 클래스 경로에서. 웹 응용 프로그램에서 찾을 수 없다면 전역 클래스 경로에서 검색하십시오.

편집 : Anders가 언급 한 것처럼 이미 발견 된 라이브러리와 동일한 디렉토리에 있더라도 라이브러리의 모든 단일 인스턴스를 찾아야합니다.

+1

둘째. classpath에 라이브러리의 두 버전이 있고 "잘못된"것이 먼저있을 수도 있습니다. –

+0

전 하드 디스크에 HtmlCleaner jar (2.2, 최신 avaible) 버전 만 있습니다. Netbeans의 캐시도 정리했지만 문제는 여전히 남아 있습니다. "Ljava/io/File;) V"의 의미는 ... –

+1

은 java.io.File을 매개 변수로 사용하여 생성자와 비슷하게 보입니다. 두 번째로 라이브러리를 찾지 못한 경우 - 클래스 경로에있는 라이브러리에 원시 클래스 (예 : 다시 패키징되었거나 변경 되었습니까? 원래 jar 파일과 함께 배포 했습니까? –

관련 문제