Servlets @WebServlet在Netbeans 11.0中失败,出现java.lang.RuntimeException:com.example.NewServlet。<;初始化>;(NewServlet.java:1)

Servlets @WebServlet在Netbeans 11.0中失败,出现java.lang.RuntimeException:com.example.NewServlet。<;初始化>;(NewServlet.java:1),servlets,netbeans,netbeans-11,Servlets,Netbeans,Netbeans 11,某种噩梦——无法使用servlet注释在Apache Tomcat 9.0.22(或Glassfish 5.0.1)和Apache NetBeans IDE 11.0(Build incubator-NetBeans-release-404-on-20190319)上启动原始servlet。。使用JDK1.8u221。代码如下: @WebServlet(name = "NewServlet", urlPatterns = {"/meow"}) public class NewServlet ex

某种噩梦——无法使用servlet注释在Apache Tomcat 9.0.22(或Glassfish 5.0.1)和Apache NetBeans IDE 11.0(Build incubator-NetBeans-release-404-on-20190319)上启动原始servlet。。使用JDK1.8u221。代码如下:

@WebServlet(name = "NewServlet", urlPatterns = {"/meow"})
public class NewServlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().println("test");
    }
}
web.xml
文件:

<?xml version="1.0" encoding="UTF-8"?>

<web-app 
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">

</web-app>
目标是仅通过注释来声明servlet,比如
@WebServlet(name=“NewServlet”,urlPatterns={”/meow})


在带有JDK1.8u221的NetBeans 8.2上进行测试-所有工作正常。我怀疑问题出在Apache NetBeans 11中,即使项目JDK设置为8(也是源代码/二进制格式)。

问题出在Apache NetBeans 11中。在更高版本(仍然是非官方的)11.1中,Servlet注释按其应有的方式工作,即使没有web.xml文件。在Apache NetBeans IDE 11.1(可供下载)上使用Apache Tomcat 9.0.22和Glassfish 5.0.1进行测试。

。在更高版本(仍然是非官方的)11.1中,Servlet注释按其应有的方式工作,即使没有web.xml文件。在Apache NetBeans IDE 11.1(可下载)上使用Apache Tomcat 9.0.22和Glassfish 5.0.1进行测试。

我今天在使用OpenJDK 14的NetBeans 12.0中遇到了这个问题。原来问题是通过安装nb javac插件解决的

我今天在使用OpenJDK 14的Netbeans 12.0中遇到了这个问题。原来问题是通过安装nb javac插件解决的

仅供参考,ApacheNetbeans11.1昨天正式发布。可以。仅供参考,ApacheNetbeans11.1昨天正式发布。你可以。这个插件的安装在我使用ApacheNetbeans12.0、JDK8到GlassFish 5.1.0以及project的java平台时确实有效。如果您只是将JDK用作一个库,而不定义环境变量,那么似乎需要使用它,因为我的默认JDK是13。下面是对nb javac插件的描述,供希望更准确地说明运行servlet所需的nb javac插件的人使用:该插件的安装确实适用于我使用Apache Netbeans 12.0、JDK 8到GlassFish 5.1.0以及项目的java平台。如果您只是将JDK用作一个库,而不定义环境变量,那么似乎需要使用它,因为我的默认JDK是13。以下是nb javac插件的描述,供希望更准确地说明运行servlet需要它的人使用:
java.lang.RuntimeException: 
    com.example.NewServlet.<init>(NewServlet.java:1)
    java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    java.base/java.lang.Class.newInstance(Class.java:584)
    org.apache.openejb.core.WebContext.newWeakableInstance(WebContext.java:147)
    org.apache.openejb.core.WebContext.newInstance(WebContext.java:181)
    org.apache.tomee.catalina.JavaeeInstanceManager.newInstance(JavaeeInstanceManager.java:78)
    org.apache.tomee.catalina.JavaeeInstanceManager.newInstance(JavaeeInstanceManager.java:124)
    org.apache.tomee.catalina.JavaeeInstanceManager.newInstance(JavaeeInstanceManager.java:119)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1839)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.base/java.lang.Thread.run(Thread.java:834)