2010-02-22 91 views
0

我確實有家html文件,當我給上下文根http://localhost:8080/ccc自動加載到瀏覽器中的html文件。在HTML文件中我有五個環節,每個包含此格式, 鏈接, <a href="servlet_alias_name">Title</a>如何從html文件中鏈接servlet

,當我點擊鏈接的任何一個,它說servlet_name沒有找到,是不是可能通過「a href」標籤從html導航到servlet?

我使用的是Sun的Java應用程序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 2010-02-22 07:40:21

回答

1

如果servlet_alias_name被定義爲部署描述符(/WEB-INF/web.xml)中的url-mapping爲您的Web應用程序,您應該能夠以這種方式訪問​​該servlet。我的猜測是你沒有定義URL映射,並試圖直接使用servlet-name元素,這是行不通的。

例如,下面的代碼片段將servlet類com.mycompany.SuperServlet映射到邏輯名稱myServlet,那麼URL http://localhost:8080/ccc/servlet-alias-name映射到邏輯名稱myServlet了。這將使該URL的請求調用該servlet類。

<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劃傷了這一切。

你的問題是你的web應用程序在運行時找不到org.jfree.data.general.PieDataset類,雖然它在代碼編譯時就在那裏,請檢查javadoc的NoClassDefFoundError

您是否將libs包含在已部署的webapp中?

  • 在/ WEB-INF /罐LIB
  • 作爲班/ WEB-INF/classes中

或者,該庫應該是部署和全球可用的應用程序服務器?

在構建環境和運行時環境中是否具有相同版本的庫?

爲了在Tomcat上看到它時調試這個錯誤,我去了一個簡單的例子(用webapp部署jar)並試圖讓它工作。我從來沒有發現任何特別有用的工具來調試這種情況,說實話 - 任何人都知道有什麼幫助嗎?

+0

我正在使用Sun Java Application Server 8.0 PE。它會在部署時自動創建和更新這些映射細節。 – professionalcoder2010 2010-02-22 07:36:19

+0

對不起,這是從原來的問題文本不清楚。根據您提供的附加詳細信息更新我的答案,希望能提供更多幫助。 – Brabster 2010-02-22 07:54:22

+0

感謝您的想法..我得到了結果 – professionalcoder2010 2010-02-22 09:29:08