servlet <load-on-startup>设置时遇到的问题

来源:互联网 发布:linux msleep函数 编辑:程序博客网 时间:2024/06/05 12:24

创建这个Servlet类的时候配置Servlet的自动加载的时候报了错

public class LDemo extends HttpServlet {     LDemo(){        System.out.println("LDemo创建了");    }    @Override    public void init() throws ServletException {        System.out.println("LDemo无参init被调用");    }}严重: Servlet /WEB threw load() exceptionjava.lang.IllegalAccessException: Class org.apache.catalina.core.StandardWrapper can not access a member of class com.java.servlet.life.LDemo with modifiers ""    at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109)    at java.lang.Class.newInstance(Class.java:368)    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1149)    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425)    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4738)    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)    at org.apache.catalina.core.StandardService.start(StandardService.java:525)    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:606)    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

结果发现是LDemo的构造函数没有加public造成的,解决办法就是在Ldemo()前加上访问权限修饰符即可。

0 0