Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat 8.5、Netbeans 11.2异常启动过滤器_Java_Tomcat_Netbeans - Fatal编程技术网

Java Tomcat 8.5、Netbeans 11.2异常启动过滤器

Java Tomcat 8.5、Netbeans 11.2异常启动过滤器,java,tomcat,netbeans,Java,Tomcat,Netbeans,当我使用Java 8、Tomcat 8、Netbeans 8运行web应用程序时,它运行得非常好。使用Netbeans 11运行相同的应用程序时,会出现以下错误,即使Netbeans 11中仍然是Java 8、Tomcat 8 这是tomcat错误日志 Mar 05, 2020 9:30:40 AM org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter DatabaseChec

当我使用Java 8、Tomcat 8、Netbeans 8运行web应用程序时,它运行得非常好。使用Netbeans 11运行相同的应用程序时,会出现以下错误,即使Netbeans 11中仍然是Java 8、Tomcat 8

这是tomcat错误日志

Mar 05, 2020 9:30:40 AM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter DatabaseCheckFilter
java.lang.RuntimeException: 
    at filters.DatabaseCheckFilter.<init>(DatabaseCheckFilter.java:1)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:424)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
    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:601)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    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:840)
    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:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
下面是web.xml的摘录

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>UserInfoFilter</filter-name>
        <filter-class>filters.UserInfoFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>UserInfoFilter</filter-name>
        <url-pattern>/scheduler.jsp</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>DatabaseCheckFilter</filter-name>
        <filter-class>filters.DatabaseCheckFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>DatabaseCheckFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>

用户信息过滤器
filters.UserInfoFilter
用户信息过滤器
/scheduler.jsp
数据库检查过滤器
filters.DatabaseCheckFilter
数据库检查过滤器
/*

Netbeans 11+版本解决了此问题。

运行刚刚发布的Netbeans 11.3修复了此问题。

您确定stacktrace不会以“原因:”继续,显示失败的真正原因吗?--另外,您能否显示
DatabaseCheckFilter
的代码?如果没有
DatabaseCheckFilter
类的源代码,很难说什么。该类看起来是您的类,而不是内置的Java类或来自常用库的类。我能想到的最好的猜测是,这个类中有一个类似于以下内容的catch块:
catch(异常e){throw new RuntimeException(e.getMessage();}
,这个catch块正在捕获NullPointerException,我已经添加了完整的堆栈跟踪以及类和web.xml文件中的代码。请确保您的.war文件中没有附带一些非常旧的servlet-api.jar。更好的方法是:使用最新tomcat发行版中的servlet-api.jar来编译web应用程序,或者使用一些相对现代的版本
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>UserInfoFilter</filter-name>
        <filter-class>filters.UserInfoFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>UserInfoFilter</filter-name>
        <url-pattern>/scheduler.jsp</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>DatabaseCheckFilter</filter-name>
        <filter-class>filters.DatabaseCheckFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>DatabaseCheckFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>