2016年2月16日 | Leave a comment 问题: Tomcat JAX-RS HTTP Status 500 – Servlet.init() for servlet me.yek.shop.rest.App threw exception Java HTTP Status 500 - Servlet.init() for servlet me.yek.shop.rest.App threw exception type Exception report message Servlet.init() for servlet me.yek.shop.rest.App threw exception description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet.init() for servlet me.yek.shop.rest.App threw exception org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) root cause java.lang.IllegalStateException: The resource configuration is not modifiable in this context. org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:274) org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:221) org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:453) org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:385) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:172) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:364) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) note The full stack trace of the root cause is available in the Apache Tomcat/8.0.3 logs. Apache Tomcat/8.0.3 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 HTTP Status 500 - Servlet.init() for servlet me.yek.shop.rest.App threw exception type Exception report message Servlet.init() for servlet me.yek.shop.rest.App threw exception description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet.init() for servlet me.yek.shop.rest.App threw exception org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745)root cause java.lang.IllegalStateException: The resource configuration is not modifiable in this context. org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:274) org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:221) org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:453) org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:385) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:172) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:364) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745)note The full stack trace of the root cause is available in the Apache Tomcat/8.0.3 logs. Apache Tomcat/8.0.3 解决: 用 ResourceConfig @ApplicationPath("api") public class App extends ResourceConfig { //error // @Override // public Set<Class<?>> getClasses() { // Set<Class<?>> ret=new HashSet<>(); // ret.add(PlaceFacade.class); // ret.add(ProductFacade.class); //// ret.add(UserFacade.class); // ret.add(CartFacade.class); // return ret; // } // public App(){ this.register(PlaceFacade.class); this.register(ProductFacade.class); this.register(CartFacade.class); } } 1234567891011121314151617181920 @ApplicationPath("api")public class App extends ResourceConfig {//error// @Override// public Set<Class<?>> getClasses() {// Set<Class<?>> ret=new HashSet<>();// ret.add(PlaceFacade.class);// ret.add(ProductFacade.class);//// ret.add(UserFacade.class);// ret.add(CartFacade.class);// return ret;// }// public App(){ this.register(PlaceFacade.class); this.register(ProductFacade.class); this.register(CartFacade.class); } } 不要使用 @PathParam(“date”) LocalDate date 改成 @PathParam(“date”) String date