Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VerifyInstrumentationException: Target class class co.paralleluniverse.fibers.servlet.FiberHttpServlet$ServletSuspendableRunnable has not been instrumented. #70

Open
Basil-pki opened this issue Jul 21, 2016 · 5 comments

Comments

@Basil-pki
Copy link

I am working on a jax-rs restful web service maven project. I am using standalone tomcat 8.0 server. i copied comsat tomcat loader to Tomcat 8.0\lib folder. I created webapp/META-INF/context.xml file. The content of the file is given below:

My web service code is pasted below:
package com.mkyong.rest;
import java.io.IOException;
import javax.inject.Singleton;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
import co.paralleluniverse.fibers.Fiber;
import co.paralleluniverse.fibers.SuspendExecution;
import co.paralleluniverse.fibers.Suspendable;
@singleton
@path("/hello")
public class HelloWorldService {
@get
@path("/{param}")
@Suspendable
public Response getMsg(@PathParam("param") String msg) throws IOException, SuspendExecution, InterruptedException{
String output = "Jersey say : " + msg;
Fiber.sleep(1000);
return Response.status(200).entity(output).build();
}
}

The exception raised only when i put Fiber.sleep(1000); Otherwise code working properly.

The exception is copied below :

INFO: Server startup in 3068 ms
QUASAR WARNING: Quasar Java Agent isn't running. If you're using another instrumentation method you can ignore this message; otherwise, please refer to the Getting Started section in the Quasar documentation.
Jul 20, 2016 7:22:05 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jersey-serlvet] in context with path [/eln-dataexternalization] threw exception
co.paralleluniverse.fibers.VerifyInstrumentationException: Target class class co.paralleluniverse.fibers.servlet.FiberHttpServlet$ServletSuspendableRunnable has not been instrumented.
at co.paralleluniverse.fibers.Fiber.verifyInstrumentedTarget(Fiber.java:251)
at co.paralleluniverse.fibers.Fiber.(Fiber.java:180)
at co.paralleluniverse.fibers.Fiber.(Fiber.java:224)
at co.paralleluniverse.fibers.Fiber.(Fiber.java:449)
at co.paralleluniverse.fibers.servlet.FiberHttpServlet.service(FiberHttpServlet.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

The client UI page is blank.

Thanks,

Basil

@circlespainter circlespainter self-assigned this Jul 21, 2016
@circlespainter
Copy link
Member

What is the exact Tomcat version (e.g. 8.0.36)?

@Basil-pki
Copy link
Author

The Tomcat version is 8.0.36. I also checked in tomcat-7.0.70. Same issue happened in both scenarios.

@Basil-pki
Copy link
Author

My OS platform is windows 10.

@circlespainter circlespainter removed their assignment Jul 28, 2016
@adityalad-mmt
Copy link

I am getting the same exception. I am on Tomcat 8.0.33/Windows 7. No clue why. I have done the tomcat instrumentation, Jersey integration.

@adityalad-mmt
Copy link

I removed comsat Jersey from my application and tried to use the comsat spring4 integration, as I thought Jersey integration isnt working correctly. But I got the same exception with comsat-spring mvc as well. I think the main problem here was that the instrumentation was never happening in the first place on my Tomcat 8.0.33 through the tomcat quasar classloader. I downloaded the spring4 example and ran it on 8.0.23, and it worked seamlessly. I then removed Jersey integration from my application, used spring-mvc and then deployed it on the same 8.0.23 and it worked. I notice that I can see the quasar classloader's warning messages on 8.0.23 but not on 8.0.33. That's an indication that classloading is working on 8.0.23 but not on 8.0.33.

31-Aug-2017 10:57:26.604 INFO [localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployWAR Deploying web application archive C:\mmt\apache-tomcat-8.
0.23\webapps\spring4-mvc-gradle-annotation-hello-world.war
[quasar] WARNING: Can't determine super class of com/caucho/hessian/io/Hessian2O
utput
[quasar] WARNING: Can't determine super class of com/caucho/hessian/io/HessianOu
tput
[quasar] WARNING: Can't determine super class of org/aspectj/lang/JoinPoint
31-Aug-2017 10:57:30.564 INFO [localhost-startStop-1] org.apache.jasper.servlet.
TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs.
 Enable debug logging for this logger for a complete list of JARs that were scan
ned but no TLDs were found in them. Skipping unneeded JARs during scanning can i
mprove startup time and JSP compilation time.
31-Aug-2017 10:57:30.755 INFO [localhost-startStop-1] org.springframework.web.co
ntext.ContextLoader.initWebApplicationContext Root WebApplicationContext: initia
lization started 

My application had Jersey, then Spring which is being deployed on a standalone tomcat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants