Java EE 9 Jersy错误

时间:2018-02-28 16:27:16

标签: java java-9

我已经开始学习Java并且已经在这里堆积了几天。 HTTP状态500 - 内部服务器错误 输入例外报告

Servlet [com.recnav.api.RestApp]的Servlet.init()抛出异常

描述服务器遇到意外情况,导致无法完成请求。

异常

javax.servlet.ServletException:servlet [com.recnav.api.RestApp]的Servlet.init()抛出异常     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)     org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)     org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:409)     org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)     org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:754)     org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1376)     org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)     java.base / java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)     java.base / java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:641)     org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     java.base / java.lang.Thread.run(Thread.java:844) 根本原因

java.lang.IllegalStateException:在此上下文中,资源配置不可修改。     org.glassfish.jersey.server.ResourceConfig $ ImmutableState.register(ResourceConfig.java:270)     org.glassfish.jersey.server.ResourceConfig $ ImmutableState.register(ResourceConfig.java:218)     org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:448)     org.glassfish.jersey.servlet.WebComponent。(WebComponent.java:309)     org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)     org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)     javax.servlet.GenericServlet.init(GenericServlet.java:158)     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)     org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)     org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:409)     org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)     org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:754)     org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1376)     org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)     java.base / java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)     java.base / java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:641)     org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     java.base / java.lang.Thread.run(Thread.java:844) 注意服务器日志中提供了根本原因的完整堆栈跟踪。

我正在使用Java SE 9和tomcat v9.0

这是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
  <groupId>RecNav</groupId>
  <artifactId>RecNav</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jersey.containers</groupId>
      <artifactId>jersey-container-servlet-core</artifactId>
      <version>2.13</version>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jersey.containers</groupId>
      <artifactId>jersey-container-servlet</artifactId>
      <version>2.13</version>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.7.0</version>
        <configuration>
          <release>9</release>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

我的web.xml

<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"
         metadata-complete="false"
         version="3.1">

    <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.container.servlet.ServletContainer
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

</web-app>

我的两个班级

1

package com.recnav.api;

import javax.ws.rs.ApplicationPath;

import org.glassfish.jersey.server.ResourceConfig;

@ApplicationPath("/test")
public class RestApp extends ResourceConfig{

    public RestApp() {
            packages("com.recnav.api");
    }
}

2

package com.recnav.api;

import javax.ws.rs.Path;

@Path("/hello")
public class TestServlet {

    public String getMsg() {
        return "Hello Eno";
    }

}

请你能帮帮我吗?

谢谢!

0 个答案:

没有答案