Dear List,

I am not sure if I mix up anything but for what I am trying to do the most
convenient way of building my Web Services client is by using the getPort()
function of Service in order to get a Proxy object.

This works fine until I need to get a complex type across the wire that
would need serialization. In that case I get an Exception on the client
side:

java.lang.reflect.UndeclaredThrowableException: AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.io.IOException: No serializer found for class
org.tigris.scarab.soap.om.SoapIssue in registry
[EMAIL PROTECTED]
 faultActor: 
 faultNode: 
 faultDetail: 
        {http://xml.apache.org/axis/}stackTrace:java.io.IOException: No serializer
found for class org.tigris.scarab.soap.om.SoapIssue in
registry
[EMAIL PROTECTED]
	at
org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImpl.java:1285)
	at
org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationContextImpl.java:799)
	at
org.apache.axis.encoding.SerializationContextImpl.outputMultiRefs(SerializationContextImpl.java:870)
	at
org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:181)
	at
org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:509)
	at
org.apache.axis.message.MessageElement.output(MessageElement.java:906)
	at
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:285)
	at
org.apache.axis.SOAPPart.getAsString(SOAPPart.java:498)
	at
org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:390)
	at
org.apache.axis.Message.getContentType(Message.java:401)
	at
org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:341)
	at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:122)
	at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
	at
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
	at
org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
	at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)
	at
org.apache.axis.client.Call.invokeEngine(Call.java:2564)
	at
org.apache.axis.client.Call.invoke(Call.java:2553)
	at
org.apache.axis.client.Call.invoke(Call.java:2248)
	at
org.apache.axis.client.Call.invoke(Call.java:2171)
	at
org.apache.axis.client.Call.invoke(Call.java:1691)
	at
org.apache.axis.client.AxisClientProxy.invoke(AxisClientProxy.java:186)
	at
$Proxy0.createIssue(Unknown
Source)
	at 

This is the code I use to create the proxy object:

String wsdlUrl = "http://...";;
String nameSpaceUri = "xyz";
String serviceName = "FooServiceImplService";
String portName = "FooService";
                        
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service afs = serviceFactory.createService(
                new java.net.URL(wsdlUrl),
                new QName(nameSpaceUri,serviceName));
afsIntf = (QueryService)afs.getPort(
                new QName(nameSpaceUri, portName), QueryService.class);


I understand that I would need to let Axis know that it should use the
built-in BeanSerializer to serialize my comples type. Just where would I do
that.

All samples I found so far were based on the Call.invoke() method.

Torsten



Reply via email to