-
Hello, I am currently instrumenting a legacy JAX-WS SOAP API. The API is running Payara Micro and What's unique about my implementation compared to what I see in tests, is the definition of the SOAP webservice. For now I can only provide snippets: @WebService(name = "FoobarWebService")
public class FoobarWebService implements ArbitraryInterfaceNotWebService {
@WebMethod(operationName = "get_bar")
public int get_bar(@WebParam(name = "baz") final Baz baz) {
return Baz.logic()
}
} As you can see, there is no WebService interface, there is just the implementation. However, the implementation does extend an arbitrary, unrelated interface. From what I can understand, since the arbitrary interface is not annotated as a WebService, the implementation is not picked up as a webservice implementation, despite being picked up as such by the JAX-WS runtime. However, I am not entirely sure. What I am curious about is what the minimal prerequisites would be to inform the OpenTelemetry instrumenter that this implementation class is in fact a webservice, despite not implementing any particular webservice. Or, if we can explore adding support for this strategy of implementing a webservice. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 6 replies
-
Looking further into this, it looks like the issue may not be the lack of a WebService interface. Testing with a minimal interface and implementation, I do not observe any traces. I find this curious given that the muzzle for I am thinking it may be Payara Micro. Some additional information:
Also, something that may be noteworthy is that I am also running Jersey 3.1.2 and I can observe traces there, so the Java agent seems to be able to auto-instrument certain things on Payara Micro. |
Beta Was this translation helpful? Give feedback.
That looks like an interesting way to solve it.
Payara Micro is fully capable of exporting some traces for natively supported libraries like JAXRS, so that always worked flawlessly, and
otel.*
system properties set on the plugin are properly read and used by the application, so the out-of-the-box experience gave the impression that the Javaagent was doing its thing for JAXWS, but it wasn't, Payara was simply already handling it.When it came to JAXWS, there was no actual instrumentation b…