I got this when implementing a SOAP service from a provided wsdl. I hope I would not done the same mistake if I wrote the wsdl myself, but we will never know for sure 😉
Now to the solution. You probably have something like this in your code (Apache Camel in a SpringBoot application)
...
@Component
public class CurrencyRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("cxf:bean:currencyLookupAdapterEndpoint")
.log("Body: ${body}");
}
@Bean
private CxfEndpoint currencyLookupAdapterEndpoint() {
final CxfEndpoint cxfEndpoint = new CxfEndpoint();
cxfEndpoint.setWsdlURL("currencies.wsdl");
cxfEndpoint.setAddress("/getCurrencies");
// Set the Service Class
cxfEndpoint.setServiceClass(CurrenciesResponderService.class);
cxfEndpoint.setProperties(new HashMap<>());
cxfEndpoint.getProperties().put("schema-validation-enabled", "true");
return cxfEndpoint;
}
}
In the currencies.wsdl I had a CurrenciesResponderService and a CurrenciesResponderInterface.
If I choose the CurrenciesResponderService.class as the ServiceClass I got the error below:
org.apache.cxf.service.factory.ServiceConstructionException: Could not find portType named {<some namespace>}<some service>PortType
and if I choose the CurrenciesResponderInterface.class instead the application started without the error 🙂
Tested on Apache Camel v3.17 and SpringBoot v3.2.0
Comments are closed.