I have a JAX-RS web app
built using Intellij IDEA
. I'm using Glassfish
as the server. Unfortunately, I get the below errors after making some changes to a class, then running the app (Shift+F10) and making a call to a resource, even one that wasn't changed. If I Rebuild the project before running it, I don't get the below errors.
Question: Can we run the project directly, without the need to rebuild it after every damn small change ?
[2014-11-24T15:33:23.772+0100] [glassfish 4.1] [WARNING] [] [javax.enterprise.system.container.web.com.sun.web.security] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839603772] [levelValue: 900] [[
Context path from ServletContext: differs from path from bundle: /]]
[2014-11-24T15:33:23.952+0100] [glassfish 4.1] [INFO] [] [com.sun.jersey.api.core.servlet.WebAppResourceConfig] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839603952] [levelValue: 800] [[
Scanning for root resource and provider classes in the Web app resource paths:
/WEB-INF/lib
/WEB-INF/classes]]
[2014-11-24T15:33:26.359+0100] [glassfish 4.1] [INFO] [] [com.sun.jersey.api.core.ScanningResourceConfig] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839606359] [levelValue: 800] [[
Root resource classes found:
class com.project.resource.TransactionsResource
class com.project.resource.InvitesResource
class com.project.resource.UsersResource]]
[2014-11-24T15:33:26.360+0100] [glassfish 4.1] [INFO] [] [com.sun.jersey.api.core.ScanningResourceConfig] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839606360] [levelValue: 800] [[
Provider classes found:
class org.codehaus.jackson.jaxrs.JsonParseExceptionMapper
class org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider
class org.codehaus.jackson.jaxrs.JsonMappingExceptionMapper
class org.codehaus.enunciate.modules.jersey.EnunciateJAXBContextResolver
class org.codehaus.jackson.jaxrs.JacksonJsonProvider]]
[2014-11-24T15:33:26.528+0100] [glassfish 4.1] [INFO] [] [com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839606528] [levelValue: 800] [[
CDI support is enabled]]
[2014-11-24T15:33:26.540+0100] [glassfish 4.1] [INFO] [] [org.codehaus.enunciate.modules.jersey.EnunciateJerseyServletContainer] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839606540] [levelValue: 800] [[
org.codehaus.enunciate.modules.amf.JAXRSProvider not found.]]
[2014-11-24T15:33:26.561+0100] [glassfish 4.1] [INFO] [] [org.codehaus.enunciate.modules.jersey.EnunciateJerseyServletContainer] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839606561] [levelValue: 800] [[
Unable to load the spring component provider factory. Using the jersey default...]]
[2014-11-24T15:33:26.569+0100] [glassfish 4.1] [INFO] [] [com.sun.jersey.server.impl.application.WebApplicationImpl] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839606569] [levelValue: 800] [[
Initiating Jersey application, version 'Jersey: 1.11 12/09/2011 10:27 AM']]
[2014-11-24T15:33:29.576+0100] [glassfish 4.1] [SEVERE] [] [com.sun.jersey.spi.inject.Errors] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839609576] [levelValue: 1000] [[
The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: No injectable for parameter DiscoveredParameter(@javax.ws.rs.core.Context(),interface javax.ws.rs.core.Configuration,null,false)]]
[2014-11-24T15:33:29.579+0100] [glassfish 4.1] [SEVERE] [] [javax.enterprise.web] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839609579] [levelValue: 1000] [[
WebModule[]StandardWrapper.Throwable
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
at org.codehaus.enunciate.modules.jersey.EnunciateJerseyServletContainer.initiate(EnunciateJerseyServletContainer.java:131)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1583)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:1212)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:237)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
]]
[2014-11-24T15:33:29.580+0100] [glassfish 4.1] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=29 _ThreadName=http-listener-1(4)] [timeMillis: 1416839609580] [levelValue: 900] [[
StandardWrapperValve[jersey]: Allocate exception for servlet jersey
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
at org.codehaus.enunciate.modules.jersey.EnunciateJerseyServletContainer.initiate(EnunciateJerseyServletContainer.java:131)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1583)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:1212)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:237)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
Apparently if I rebuild the project before running it, everything is fine. Any permanent solution to this issue ?
Edit: Freaking figured it out. Enunciate plugin fucked something up when it assembled. Just use enunciate:docs
before Building
the artifact. Also, use the below enunciate config inside pom.xml
. This will generate the docs into the webapp folder of your project, thus including the enunciate docs directly in the public folder of your web application. The next maven step of building the artifact will take care of both the webapp and the now included enunciate docs.
<project>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.29</version>
<executions>
<execution>
<goals>
<goal>docs</goal>
</goals>
</execution>
</executions>
<configuration>
<docsDir>${project.basedir}/src/main/webapp/docs</docsDir>
<configFile>enunciate.xml</configFile>
<enunciateArtifactId/>
<moduleName/>
</configuration>
</plugin>
</build>
</project>