javax.servlet.ServletException:Wrapper找不到servlet类 [英] javax.servlet.ServletException: Wrapper cannot find servlet class

查看:230
本文介绍了javax.servlet.ServletException:Wrapper找不到servlet类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从Jasper Reports for Java Develper(第3章)制作了一个servlet,它将在浏览器上显示Jasper Report。

I have made a servlet from "Jasper Reports for Java Develper" (chapter 3) which will show Jasper Report on browser.

servlet如下所示:

The servlet look like below:

public class FirstReportSendToBrowserServlet extends HttpServlet {

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

然后我编译了servlet并将其放入Tomcat。当我启动tomcat时,它运行良好。但是servlet不起作用,我得到以下异常:

Then I compiled the servlet and put it into Tomcat. When I fire up tomcat, it works well. But the servlet doesn't work, I get the following exception:

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) 

但是servlet类已经存在了在Tomcat中部署,有人可以给出提示吗?

But the servlet class has already been deployed in Tomcat, can somebody give hints?

推荐答案

由于异常消息提示,您的servlet类不在包中(通常在那里显示完整的限定类名。您应该始终将servlet类(以及所有其他Java类)放在一个包中。

As the exception message hints, your servlet class is not in a package (normally the full qualified classname is shown there). You should always put the servlet class (and all other Java classes) in a package.

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

public class FirstReportSendToBrowserServlet extends HttpServlet {

    // ...

}

默认包中的类对于驻留在包中的类是不可见的(例如Tomcat本身)。

Classes in the default package are invisible to classes which reside in a package (such as Tomcat itself).

这篇关于javax.servlet.ServletException:Wrapper找不到servlet类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆