Thanks for getting back to me… It’s not with the tools. It occurs when trying to run a test client program that makes JAX-WS call
Exception info and code block are below. Hopefully this helps answer your question Connected to the target VM, address: '127.0.0.1:57317', transport: 'socket' SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Nov 20, 2023 4:32:49 PM org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL INFO: Creating Service {http://ws.jaxws.example.com/}EmployeeService from WSDL:http://localhost:8080/employee-service/EmployeeService?wsdl employeeServiceService: com.example.jaxws.ws.EmployeeService_Service@6e0ff644 employeeServiceProxy: org.apache.cxf.jaxws.JaxWsClientProxy@5949eba8 Nov 20, 2023 4:33:03 PM org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service { http://localhost:8080/employee-service/EmployeeService}EmployeeService from class com.example.jaxws.ws.EmployeeService Nov 20, 2023 4:33:03 PM org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service { http://localhost:8080/employee-service/EmployeeService}EmployeeService from class com.example.jaxws.ws.EmployeeService Nov 20, 2023 4:36:48 PM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging *WARNING: Interceptor for {http://localhost:8080/employee-service/EmployeeService}EmployeeService#{http://ws.jaxws.example.com/}getEmployee <http://localhost:8080/employee-service/EmployeeService%7DEmployeeService#%7Bhttp://ws.jaxws.example.com/%7DgetEmployee> has thrown exception, unwinding now* *java.lang.NullPointerException: Cannot invoke "org.apache.cxf.transport.http.Address.getURI()" because "address" is null* at org.apache.cxf.transport.http.HttpClientHTTPConduit.setupConnection(HttpClientHTTPConduit.java:161) at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:551) at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:47) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:439) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:354) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:312) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140) at jdk.proxy2/jdk.proxy2.$Proxy34.getEmployee(Unknown Source) * at com.example.jaxws.ws.client.WSClient.main(WSClient.java:49) —> **TEST CLIENT APP W/ A main() method – error triggered on this line 49 – see code below * jakarta.xml.ws.WebServiceException: java.lang.NullPointerException: Cannot invoke "org.apache.cxf.transport.http.Address.getURI()" because "address" is null at org.apache.cxf.jaxws.JaxWsClientProxy.mapException(JaxWsClientProxy.java:193) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145) at jdk.proxy2/jdk.proxy2.$Proxy34.getEmployee(Unknown Source) at com.example.jaxws.ws.client.WSClient.main(WSClient.java:49) Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.cxf.transport.http.Address.getURI()" because "address" is null at org.apache.cxf.transport.http.HttpClientHTTPConduit.setupConnection(HttpClientHTTPConduit.java:161) at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:551) at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:47) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:439) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:354) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:312) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140) ... 2 more Disconnected from the target VM, address: '127.0.0.1:57317', transport: 'socket' *TEST CODE BEING USED* package com.example.jaxws.ws.client; import com.example.jaxws.ws.Employee; import com.example.jaxws.ws.EmployeeService_Service; import jakarta.xml.ws.Service; import jakarta.xml.ws.soap.SOAPBinding; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import javax.xml.namespace.QName; import java.net.MalformedURLException; import java.net.URL; public final class WSClient { private static final Logger *logger *= LogManager.*getLogger*(WSClient. class); private static URL *url*; static { try { *url *= new URL(" http://localhost:8080/employee-service/EmployeeService?wsdl"); } catch (MalformedURLException e) { throw new RuntimeException(e); } } //private static QName qName = new QName(" http://localhost:8080/employee-service/EmployeeService"); private static final QName *SERVICE_NAME *= new QName(" http://localhost:8080/employee-service/EmployeeService", "EmployeeService"); private static final QName *PORT_NAME *= new QName(" http://localhost:8080/employee-service/EmployeeService", "EmployeeServicePort"); WSClient() { } public static void main(String[] args) { try { EmployeeService_Service employeeServiceService = new EmployeeService_Service(*url*); com.example.jaxws.ws.EmployeeService employeeServiceProxy = employeeServiceService.getEmployeeServiceImplPort(); System.*out*.println("employeeServiceService: " + employeeServiceService.toString()); System.*out*.println("employeeServiceProxy: " + employeeServiceProxy.toString()); Service service = Service.*create*(*SERVICE_NAME*); String endpointAddress = " http://localhost:8080/employee-service/EmployeeService"; service.addPort(*PORT_NAME*, SOAPBinding.*SOAP11HTTP_BINDING*, endpointAddress); com.example.jaxws.ws.EmployeeService employeeService = service.getPort(com.example.jaxws.ws.EmployeeService.class); *Employee employee = employeeService.getEmployee(9000);* —> Exception is triggered as soon as an attempt to call the method on the Proxy instance… this is line 49 in the stacktrace System.*out*.println("com.example.jaxws.ws.Employee:" + employee.toString()); } catch (Exception e) { e.printStackTrace(); } } } On Mon, Nov 20, 2023 at 21:45 Jim Ma <mail2ji...@gmail.com> wrote: > When does this error happen? Still in code generation with cxf tools ? > It seems this is generated from the java classes instead of from the wsdl > file . Did you pass the correct wsdl url to the cxf tool ? > > > On Mon, Nov 20, 2023 at 11:57 AM Mark Streit <mcs...@gmail.com> wrote: > >> Jim Ma >> >> Many THANKS for pointing this out. Indeed, when I removed the original >> entry that was entangled in Metro JAX-WS and replaced w/ the CXF >> dependency.... *it processed MUCH farther*. Instead of failing where it >> was originally trying to find a "Provider", it now passes much further to >> the point of NOW making the call attempt but I am still seeing it error >> in a different place in the code... >> >> Nov 19, 2023 10:42:16 PM >> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean >> buildServiceFromClass >> >> INFO: Creating Service { >> http://localhost:8080/employee-service/EmployeeService}EmployeeService from >> class com.example.jaxws.ws.EmployeeService >> >> Nov 19, 2023 10:42:16 PM >> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean >> buildServiceFromClass >> >> INFO: Creating Service { >> http://localhost:8080/employee-service/EmployeeService}EmployeeService from >> class com.example.jaxws.ws.EmployeeService >> >> Nov 19, 2023 10:42:16 PM org.apache.cxf.phase.PhaseInterceptorChain >> doDefaultLogging >> >> WARNING: Interceptor for { >> http://localhost:8080/employee-service/EmployeeService}EmployeeService#{http://ws.jaxws.example.com/}getEmployee >> has >> thrown exception, unwinding now >> >> java.lang.NullPointerException: Cannot invoke >> "org.apache.cxf.transport.http.Address.getURI()" because "address" is null >> >> at >> org.apache.cxf.transport.http.HttpClientHTTPConduit.setupConnection(HttpClientHTTPConduit.java:161) >> >> at >> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:551) >> >> >> >> I have resumed a Google hunt for the error message shown above, but have >> yet to find anything concrete beyond the fact that this error has been seen >> by others ... >> >> This is the furthest I have been able to get the test client to go so *thank >> you* immensely for the valuable tip regarding the dependency change... I >> was fighting with the original Provider issue for over a week making >> countless changes with no success... >> >> >> Mark >> >> >> >> >> On Sun, Nov 12, 2023 at 8:10 PM Jim Ma <mail2ji...@gmail.com> wrote: >> >>> Your pom has the metro and this is problematic to work with CXF's tool. >>> Please replace this dependency with CXF's. >>> <dependency> >>> >>> <groupId>com.sun.xml.ws</groupId> >>> <artifactId>rt</artifactId> >>> <version>2.3.2</version> >>> <scope>runtime</scope> >>> </dependency> >>> >>> >>> On Sat, Nov 11, 2023 at 9:35 AM Mark Streit <mcs...@gmail.com> wrote: >>> >>> > Hello All >>> > >>> > I'm fairly well-versed in JAX-WS web services going back to the days >>> of the >>> > original JSR-224 spec and the "Sun Metro" JAX-WS RT and API stack. I >>> have >>> > not used JAX-WS services and tools since we moved to Spring Boot >>> > around 2016. I'm now finding myself working on a project that uses >>> WildFly >>> > (v27 specifically) and SOAP web services. >>> > >>> > While doing a very simple POC exercise, I have a JAX-WS web service >>> > packaged in a WAR (build w/ Maven) and deployed and running on WildFly >>> - no >>> > issues there. I can get back the WSDL document from the "running" >>> service >>> > on port 8080. (A default standard instance of WildFly running - *JDK 17 >>> > Corretto)*. I've also discovered that the tools in WildFly (such as >>> > *wsconsume* to generate java artifacts, *are using CXF* under the hood >>> - >>> > "wsdl2Java"?). >>> > >>> > >>> > **** This class was generated by Apache CXF 3.5.2-jbossorg-4* >>> > >>> > Hence I'm taking a longshot chance asking this question here as I've >>> been >>> > struggling to get a JAX-WS Client built that will run from a simple >>> Java >>> > standalone code block w/ a main(). Nothing more complex than that. I >>> have >>> > posted the issue to the Stackoverflow forum to see if anyone has seen >>> > something similar. >>> > >>> > 1) the client code is extremely simple and is attempted to be run from >>> > inside the IntelliJ IDE. >>> > 2) I have debugged the client code stepping into the code where it >>> blows >>> > apart w/ the message seen below. >>> > >>> > >>> > >>> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) >>> > >>> > at >>> > >>> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) >>> > >>> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) >>> > >>> > at java.base/java.lang.Class.forName0(Native Method) >>> > >>> > at java.base/java.lang.Class.forName(Class.java:375) >>> > >>> > at jakarta.xml.ws.spi.FactoryFinder.isOsgi(FactoryFinder.java:214) >>> > >>> > at jakarta.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:124) >>> > >>> > at jakarta.xml.ws.spi.Provider.provider(Provider.java:64) >>> > >>> > at jakarta.xml.ws.Service.<init>(Service.java:82) >>> > >>> > at jakarta.xml.ws.Service.create(Service.java:735) >>> > >>> > at com.example.jaxws.ws.client.WSClient.main(WSClient.java:21) >>> > >>> > jakarta.xml.ws.WebServiceException: Unable to createEndpointReference >>> > Provider >>> > >>> > at jakarta.xml.ws.spi.Provider.provider(Provider.java:68) >>> > >>> > at jakarta.xml.ws.Service.<init>(Service.java:82) >>> > >>> > at jakarta.xml.ws.Service.create(Service.java:735) >>> > >>> > at com.example.jaxws.ws.client.WSClient.main(WSClient.java:21) >>> > >>> > Caused by: java.lang.ClassCastException: class >>> > com.sun.xml.ws.spi.ProviderImpl cannot be cast to class >>> > jakarta.xml.ws.spi.Provider (com.sun.xml.ws.spi.ProviderImpl and >>> > jakarta.xml.ws.spi.Provider are in unnamed module of loader 'app') >>> > >>> > at jakarta.xml.ws.spi.Provider.provider(Provider.java:64) >>> > >>> > >>> > *Everything is described on this >>> > post >>> > >>> https://stackoverflow.com/questions/77456843/jax-ws-web-service-client-jdk-17-simple-java-client-w-a-main-fails >>> > < >>> > >>> https://stackoverflow.com/questions/77456843/jax-ws-web-service-client-jdk-17-simple-java-client-w-a-main-fails >>> > > >>> > The post includes the relevant Java code blocks and the pom.xml >>> content. * >>> > >>> > >>> > 3) The client code was built w/ Maven using a terminal window and >>> typical >>> > mvn clean install -U >>> > 4) A JAR file is created - when you right-click and run it from inside >>> the >>> > IDE, it finds main() and hits the breakpoints as expected... >>> > >>> > It's clearly a runtime classpath problem or mistake that is causing the >>> > issue and I have spent hours changing attributes in the pom.xml, >>> adjusting >>> > the "Run Configuration" within IntelliJ --- all to simply land on the >>> same >>> > Exception when it tries to create the proxy object for the client side >>> > call. >>> > >>> > There have been many posts re: the repackaging of the JAX-WS components >>> > from "javax" to "jakartaee" following the release of JDK 7 or 8 *and >>> > onward*. >>> > It's not clear that this has anything to do with it since compile time >>> > building is always successful. >>> > >>> > While I don't suspect this is a "CXF Problem" directly, I am hoping >>> someone >>> > may be familiar w/ such an exception. >>> > >>> > >>> > Thanks for any input >>> > >>> > Mark >>> > >>> >>