Hi,
the scenario is a simple cxfrs endpoint from that passing message to a cxf ws.
env: WildFly-Camel 4.9.0
the error message:
java.lang.ClassNotFoundException:
hu.fornax.olir3.dms.producer.UTPasswordCallback
CxfEndpoint with password callback:
@Named("dmsProducerEndpoint")
@Produces
public CxfEndpoint createCxfProducerEndpoint() {
CxfComponent cxfProducerComponent = new CxfComponent(this.camelContext);
CxfEndpoint cxfProducerEndpoint = new
CxfEndpoint(CXF_ENDPOINT_URI, cxfProducerComponent);
....
Map<String, Object> outProps = new HashMap<String, Object>();
outProps.put("action", "UsernameToken");
outProps.put("passwordType", "PasswordText");
outProps.put("mustUnderstand", "0");
outProps.put("user", "zz-OLIR3-svc");
outProps.put("passwordCallbackClass",
"hu.fornax.olir3.dms.producer.UTPasswordCallback");
WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
cxfProducerEndpoint.getOutInterceptors().add(wssOut);
return cxfProducerEndpoint;
}
the route is:
from("direct:dmsCall")
.log(ESBLog.DMS + " sending DMS request body ${headers}")
.to(this.dmsProducerEndpoint)
.log(ESBLog.DMS + " received DMS response body ${headers}");
from("cxfrs:http://localhost:8080/olir3-dms2/rest?resourceClasses=hu.fornax.olir3.dms.producer.GreetingServiceRS&loggingFeatureEnabled=true")
.log(ESBLog.DMS + "incoming REST request: ${body} ${headers}")
.bean("dmsRESTImpl");
The UTPasswordCallback class is in the war and checking with
org.jboss.modules:add(level=TRACE) loaded by classloader!
- Removing cxfrs endpoint the class founded.
- If I put a spring beans in the project that contains a cxfConsumer
it works correctly but the ws consumer should be realize in an other
service.
The full source with deployed war pushed to Gitlab:
https://gitlab.com/topicfun/mycxfrstest
How can I avoid the exception without ws consumer?
I have read a lot about WildFly classloading but up to now I didn't
find any information how I can investigate to solve similar problems?
Thanks your help in advance!