[jboss-jira] [JBoss JIRA] (WFLY-11538) Opentracing - SmallRye - IllegalStateException
James Perkins (Jira)
issues at jboss.org
Wed Sep 4 20:51:06 EDT 2019
[ https://issues.jboss.org/browse/WFLY-11538?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Perkins updated WFLY-11538:
---------------------------------
Fix Version/s: 18.0.0.Final
(was: 18.0.0.Beta1)
> Opentracing - SmallRye - IllegalStateException
> ----------------------------------------------
>
> Key: WFLY-11538
> URL: https://issues.jboss.org/browse/WFLY-11538
> Project: WildFly
> Issue Type: Bug
> Components: MP OpenTracing
> Affects Versions: 15.0.0.Final
> Reporter: Alessandro Moscatelli
> Assignee: Jeff Mesnil
> Priority: Major
> Fix For: 18.0.0.Final
>
>
> Caused by: org.jboss.weld.exceptions.IllegalStateException: WELD-000713: Unable to inject ServletContext. None is associated with ModuleClassLoader for Module
> The problem is the interaction between these two:
> https://github.com/wildfly/wildfly/blob/master/microprofile/opentracing-smallrye/src/main/java/org/wildfly/microprofile/opentracing/smallrye/TracerProducer.java
> https://github.com/smallrye/smallrye-opentracing/blob/1.1.1/implementation/src/main/java/io/smallrye/opentracing/SmallRyeTracingCDIInterceptor.java
> Those are delivered with Wildfly 15 out of the box in:
> smallrye-opentracing-1.1.1.jar
> wildfly-microprofile-opentracing-smallrye-15.0.0.Final.jar
> I have an EAR with a EJB jar, WAR and a common JAR library.
> To reproduce the issue I created a Stateless EJB in the EJB jar and then I injected a Traced ApplicationScoped bean from the JAR library in the Stateless EJB.
> SmallRyeTracingCDIInterceptor triggers and it requires an Injected Tracer.
> TracerProducer triggers and it has no active ServletContext and this leads to the error above.
> My suggestion:
> I don't think the ServletContext is a really good place to store the Tracer.
> I think that the Tracer created by Wildfly should be registered into the GlobalTracer.
> This should be done by:
> https://github.com/wildfly/wildfly/blob/master/microprofile/opentracing-smallrye/src/main/java/org/wildfly/microprofile/opentracing/smallrye/TracerInitializer.java
> If you don't want Wildfly to register automatically its Tracer in the GlobalTracer, this behavior could be disabled in the subsystem.
> Also please be aware that SmallRyeTracingCDIInterceptor is dismissed in the last versions of the library and SmallRye states (https://github.com/smallrye/smallrye-opentracing) it has been replaced with:
> https://github.com/opentracing-contrib/java-interceptors/blob/master/src/main/java/io/opentracing/contrib/interceptors/OpenTracingInterceptor.java
> Also be aware that what I am suggesting is similar to the same behavior adopted in opentracing java-cdi (not yet integrated in Wildfly):
> https://github.com/opentracing-contrib/java-cdi/blob/master/opentracing-cdi/src/main/java/io/opentracing/contrib/cdi/internal/TracerInitializer.java
> https://github.com/opentracing-contrib/java-cdi/blob/master/opentracing-cdi/src/main/java/io/opentracing/contrib/cdi/internal/TracerProducer.java
> Also notice that opentracing java-ejb (not yet integrated in Wildfly) also requires a registration in GlobalTracing:
> https://github.com/opentracing-contrib/java-ejb/blob/master/opentracing-ejb/src/main/java/io/opentracing/contrib/ejb/OpenTracingInterceptor.java
> Thank you for your support.
--
This message was sent by Atlassian Jira
(v7.13.5#713005)
More information about the jboss-jira
mailing list