Hi all
I have embedded servicemix into my application and deployed the
wsdl-first-cxf-sa-3.2.1.zip to the deploy directory of my webapp.
Servicemix sees this sa and deploys it just fine, no problem.
I then proceed to make quick client using CXF DynamicClientFactory see code
below
ClassLoader classLoader = Thread.currentThread
().getContextClassLoader();
DynamicClientFactory dcf = DynamicClientFactory.newInstance();
Client client = dcf.createClient("
http://localhost:8092/PersonService/?wsdl",classLoader);
Object personRequestParam;
personRequestParam = Thread.currentThread
().getContextClassLoader().loadClass("
org.apache.servicemix.samples.wsdl_first.types.GetPerson").newInstance();
Method[] methods = personRequestParam.getClass
().getDeclaredMethods();
for (Method m : methods) {
if ("setPersonId".equals(m.getName())){
m.invoke(personRequestParam, "1");
}
}
BindingOperationInfo op =
client.getEndpoint().getEndpointInfo().getBinding().getOperation(new
QName("http://servicemix.apache.org/samples/wsdl-first","GetPerson"));
System.out.println(op.getOutput().toString());
Object[] result = client.invoke(op, personRequestParam);
for (int i = 0; i < result.length; i++) {
System.out.println(result[ i ]);
}
In the my webapp console window I see the sa being called and processing
this request. see the DEBUG output below
<SNIP>
DEBUG - DeliveryChannelImpl - Received: InOut[
id: ID:41.241.170.101-118f14d7c22-5:3
status: Done
role: provider
interface: {http://servicemix.apache.org/samples/wsdl-first}Person
service: {http://servicemix.apache.org/samples/wsdl-first}PersonService
endpoint: PersonImplPort
operation: {http://servicemix.apache.org/samples/wsdl-first}GetPerson
in: <?xml version="1.0" encoding="UTF-8" standalone="no"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="
http://servicemix.apache.org/samples/wsdl-first" name="GetPersonRequest"
type="msg:GetPersonRequest" version="1.0"><jbi:part><ns2:GetPerson
xmlns:ns2="http://servicemix.apache.org/samples/wsdl-first/types
"><personId>1</personId></ns2:GetPerson></jbi:part></jbi:message>
out: <?xml version="1.0" encoding="UTF-8" standalone="no"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><jbi:part><ns2:GetPersonResponse
xmlns:ns2="http://servicemix.apache.org/samples/wsdl-first/types
"><personId>1</personId><ssn>000-000-0000</ssn><name>Guillaume</name></ns2:GetPersonResponse></jbi:part></jbi:message>
]
DEBUG - CxfSeComponent - Received exchange: status: Done,
role: provider
DEBUG - CxfSeComponent - Retrieved correlation id: ID:
41.241.170.101-118f14d7c22-5:3
</SNIP>
It seems like servicemix is handling the request just fine
but on the client the response comes back as an Object array containing 3
null values.
I am not sure why I am not receiving any data back on the client?
Any help would be apprecieated
Thank you in advance
ICA