I have a wsdl that defines a soap header that needs to be passed when calling the web service.
The sample SOAP Header is:
<soapenv:Header>
<AuthenticationInfo>
<userName>User</userName>
<password/>
</AuthenticationInfo>
</soapenv:Header>
CXF's wsdl2java generated an "AuthenticationInfo" java class that I can create and populate with a username and password, but I don't know the proper way to pass that to the CXF Client when calling the web service.
Well, the most simple way to do this would be create an ArrayList
of Header
objects and add all your parameters or a Map<String,Object>
and add all your headers as map.put("param1",param1).
Finally get your request context and add this arraylist of map as
requestContext.put(MessageContext.HTTP_REQUEST_HEADERS,
soapHeaders);
If you're trying to pass custom soap headers, refer THIS LINK.
The general pitfalls have been mentioned in THIS DISCUSSION. It might be helpful to you.