Skip to content

Client and Service with minimal JAX-WS annotations #1925

@ppalaga

Description

@ppalaga

An Impl und SEI without serviceName on @WebService will work well on the service side.
But when creating a client from the same shared SEI with WSDL set, then it fails with

java.lang.RuntimeException: Error injecting org.acme.soap.GreetingService org.acme.client.GreetingClientBean.client
        at org.acme.client.GreetingClientBean_Bean.doCreate(Unknown Source)
        at org.acme.client.GreetingClientBean_Bean.create(Unknown Source)
        at org.acme.client.GreetingClientBean_Bean.create(Unknown Source)
        at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:119)
        at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:38)
        at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
        at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.c5(Unknown Source)
        at io.quarkus.arc.generator.Default_jakarta_enterprise_context_ApplicationScoped_ContextInstances.computeIfAbsent(Unknown Source)
        at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:35)
        at io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:23)
        at org.acme.client.GreetingClientBean_ClientProxy.arc$delegate(Unknown Source)
        at org.acme.client.GreetingClientBean_ClientProxy.callGreeting(Unknown Source)
        at org.acme.client.GreetingProxyResource.proxy(GreetingProxyResource.java:16)
        at org.acme.client.GreetingProxyResource$quarkusrestinvoker$proxy_06afef358d2f1144ccb4eeec4e1eb0f30f9dac83.invoke(Unknown Source)
        at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
        at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:183)
        at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
        at io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:645)
        at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630)
        at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589)
        at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
        at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://soap.acme.org/}.
        at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:157)
        at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:407)
        at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:527)
        at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:262)
        at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
        at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
        at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:91)
        at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:158)
        at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142)
        at io.quarkiverse.cxf.CxfClientProducer.produceCxfClient(CxfClientProducer.java:221)
        at io.quarkiverse.cxf.CxfClientProducer.loadCxfClient(CxfClientProducer.java:84)
        at org.acme.soap.GreetingServiceCxfClientProducer.createService(Unknown Source)
        at org.acme.soap.GreetingServiceCxfClientProducer_ProducerMethod_createService_qwRG6GRlNgFsFab1Xwgf8Ye-KTQ_Bean.doCreate(Unknown Source)
        at org.acme.soap.GreetingServiceCxfClientProducer_ProducerMethod_createService_qwRG6GRlNgFsFab1Xwgf8Ye-KTQ_Bean.create(Unknown Source)
        at org.acme.soap.GreetingServiceCxfClientProducer_ProducerMethod_createService_qwRG6GRlNgFsFab1Xwgf8Ye-KTQ_Bean.get(Unknown Source)
        at org.acme.soap.GreetingServiceCxfClientProducer_ProducerMethod_createService_qwRG6GRlNgFsFab1Xwgf8Ye-KTQ_Bean.get(Unknown Source)
        at io.quarkus.arc.impl.CurrentInjectionPointProvider.get(CurrentInjectionPointProvider.java:48)
        ... 26 more

I wonder whether the Client should have some default serviceName set/unset, so that the service def can be found in the WSDL.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions