2011-08-05 6 views
2

私はJasper Reports for Java Develper(第3章)からサーブレットを作成しました。これはJasper Reportをブラウザに表示します。javax.servlet.ServletException:ラッパーがサーブレットクラスを見つけることができません

サーブレットは、以下のようになります。

public class FirstReportSendToBrowserServlet extends HttpServlet { 

    //just implement doGet in the block 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    
     // ...    
    } 
} 

それから私は、サーブレットをコンパイルとTomcatにそれを置きます。私が風船を燃やすとき、それはうまくいく。サーブレットが動作しません。しかし、私は次の例外を取得:

javax.servlet.ServletException: Wrapper cannot find servlet class FirstReportSendToBrowserServlet or a class it depends on 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) 
    org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) 
    org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) 
    org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) 
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) 
    java.lang.Thread.run(Thread.java:619) 

をしかし、サーブレットクラスがすでにTomcatの中で展開されている、誰かがヒントを与えることができますか?

答えて

1

例外メッセージのヒントとして、サーブレットクラスはパッケージに含まれていません(通常は完全修飾クラス名がそこに表示されます)。サーブレットクラス(および他のすべてのJavaクラス)は常にパッケージに入れてください。

package com.parsifal; // <--- Here. 

public class FirstReportSendToBrowserServlet extends HttpServlet { 

    // ... 

} 

デフォルトパッケージのクラスは、パッケージ(Tomcat自体など)に存在するクラスには表示されません。

+0

サーブレットクラスをパッケージにラップした後でも問題は残ります。私はそれを見守ります。 – parsifal

関連する問題