我已经开始学习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";
}
}
请你能帮帮我吗?
谢谢!