2010-02-22 3 views
0

컨텍스트 루트를 http://localhost:8080/ccc 브라우저에 자동으로로드 할 때 홈 HTML 파일이 있습니다. 내가 다섯 개 링크가 HTML 파일에서 각은하지 않을 수 있습니다 ...이 형식으로, 링크, <a href="servlet_alias_name">Title</a>, html 파일에서 서블릿을 연결하는 방법

내가 링크의 어느 하나를 클릭

, 그것은 servlet_name 찾을 수 없습니다라고 들어 있습니다 "href"태그를 통해 html에서 servlet으로 이동 하시겠습니까? servlet_alias_name가 정의되어있는 경우

나는 썬 자바 응용 프로그램 Server8.0을 사용하고,

javax.servlet.ServletException: Error instantiating servlet class pagesvsnodes 
    org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:189) 
    com.sun.enterprise.web.connector.grizzly.ProcessorTask.doProcess(ProcessorTask.java:604) 
    com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:475) 
    com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:371) 
    com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:264) 
    com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:281) 
    com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:83) 
root cause 

java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset 
    java.lang.Class.getDeclaredConstructors0(Native Method) 
    java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) 
    java.lang.Class.getConstructor0(Class.java:2640) 
    java.lang.Class.newInstance0(Class.java:321) 
    java.lang.Class.newInstance(Class.java:303) 
+0

또한 필요한 라이브러리를 추가했습니다. – professionalcoder2010

답변

1

, 배포하는 동안 나는 .. 너무

을 라이브러리를 포함 시켰습니다 그리고 그것은 다음과 같은 예외를 보여줍니다 웹 응용 프로그램의 배포 설명자 (/WEB-INF/web.xml)에 url-mapping이 있으면이 방법으로 서블릿에 액세스 할 수 있어야합니다. 내 생각 엔 URL 매핑을 정의하지 않았고 직접 작동하지 않는 servlet-name 요소를 사용하려고합니다.

예를 들어, 다음 코드는 너무 논리적 이름 myServlet에 URL http://localhost:8080/ccc/servlet-alias-name지도, 논리적 이름 myServlet에 서블릿 클래스 com.mycompany.SuperServlet을지도한다. 그러면 해당 URL에 대한 요청이 해당 서블릿 클래스를 호출하게됩니다.

<servlet> 
    <servlet-name>myServlet</servlet-name> 
    <servlet-class>com.mycompany.myservlets.SuperServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>myServlet</servlet-name> 
    <url-pattern>/servlet_alias_name</url-pattern> 
</servlet-mapping> 

업데이트 - 모든 것을 OK 처음.

코드가 컴파일되었을 때 webapp에서 org.jfree.data.general.PieDataset 클래스를 찾을 수 없다는 점에있어 javadoc을 확인하십시오 (NoClassDefFoundError).

배포 된 webapp에 libs를 포함 시켰습니까?/WEB-INF/클래스

또는 클래스로

  • lib 디렉토리/WEB-INF /에있는 항아리로

    • 은 libs와 배치 및 애플리케이션 서버에 전 세계적으로 출시 될 예정입니까?

      빌드 환경과 런타임 환경에 동일한 버전의 lib가 있습니까?

      Tomcat에서이 오류를 디버깅하려면 간단한 경우 (webapp로 jar 배포)로 이동하여 작동 시키십시오. 솔직히이 상황을 디버깅하는 데 특히 유용한 도구를 찾지 못했습니다. 도움이되는 정보를 아는 사람이 있습니까?

  • +0

    Sun Java Application Server 8.0 PE를 사용하고 있습니다. 배포하는 동안 해당 매핑 정보를 자동으로 만들고 업데이트합니다. – professionalcoder2010

    +0

    죄송합니다. 원래 질문 문안에서 명확하지 않았습니다. 제공 한 추가 세부 정보를 바탕으로 내 답변이 업데이트되었습니다. 도움이 되었기를 바랍니다. – Brabster

    +0

    당신의 아이디어에 감사드립니다. 나는 결과를 얻었다 – professionalcoder2010

    관련 문제