Search code examples
soapcxf

how to workaround: Invocation without a binding operation


Consumers of my webservice, validate its certificate by pinging the endpoint: https://my.webservice.com/services/myService but they are unable to do so because they get a 500 http error code generated by the CXF component of the server:

WARNING: Interceptor for {http://my.webservice.com/}MyWebService has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No binding operation info while invoking unknown method with params unknown.
org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor$Soap12FaultOutInterceptorInternal handleMessage
...
INFO: class org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor$Soap12FaultOutInterceptorInternalapplication/soap+xml
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)

Now the webservice itself works fine when its invoked by SOAP clients at https://my.webservice.com/services/myService ... its just that a simple GET operation which is trying to figure out the certificate situation, screws up.

Is there some way to configure this endpoint to simply send back 200 OK or the WSDL file when its hit up with a simple GET? I'm using CXF version 2.7.7 right now.


Solution

  • Pass wsdl URL as below sample it will resolve the issue:

    URL wsdlURL = new URL("http://localhost:8080/abc?wsdl");