diff --git a/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/interceptors/WebServiceOutgoingCallInterceptor.java b/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/interceptors/WebServiceOutgoingCallInterceptor.java index 0b405d1920ba740e5c5f45bea809934f7ba9d4c7..8ac34e27a013fabdab0a3ce3c1a814a23bf9523c 100644 --- a/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/interceptors/WebServiceOutgoingCallInterceptor.java +++ b/tools.descartes.prisma.agent.wildfly/src/main/java/tools/descartes/prisma/agent/wildfly/interceptors/WebServiceOutgoingCallInterceptor.java @@ -59,8 +59,15 @@ public class WebServiceOutgoingCallInterceptor extends GenericSOAPHandler { URL url; try { url = new URL((String)msgContext.get("javax.xml.ws.service.endpoint.address")); - Method caller = (Method)msgContext.get("java.lang.reflect.Method"); - ComponentRecord component = MonitoringService.INSTANCE.requireComponent(url.getHost(), "", "", url.getPath()); + Method caller = (Method)msgContext.get("java.lang.reflect.Method"); + String application = ""; + String componentName = url.getPath().substring(1); // Remove first slash + int idx = url.getPath().lastIndexOf("/"); + if (idx > 0) { + application = componentName.substring(0, idx); + componentName = componentName.substring(idx + 1); + } + ComponentRecord component = MonitoringService.INSTANCE.requireComponent(url.getHost(), application, "", componentName); OperationRecord currentOperation = currentInvocation.requireEndpoint(component, caller.getDeclaringClass().getName(), "http", caller.getName()); // TODO: We currently support only one-way messages. Inbound messages are ignored. InvocationRecord outgoingInvocation = currentOperation.startInvocation();