Joe, thank you so much, your hint worked the snatch in my brain!

What you suggested did not work, but with some small modifications I can now
see my daily Dilbert!

SOAPMappingRegistry smr = new SOAPMappingRegistry();
BeanSerializer beanSer = new BeanSerializer();
StringDeserializer stringSer = new StringDeserializer();
smr.mapTypes(Constants.NS_URI_SOAP_ENC,
                 new org.apache.soap.util.xml.QName("http://tempuri.org/";,
"DailyDilbertImageResult"),
                 String.class,
                 beanSer, stringSer
                );
Call call=new Call();
call.setSOAPMappingRegistry(smr);
call.setTargetObjectURI("DailyDilbert");
call.setMethodName("DailyDilbertImage");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Response response=call.invoke(
  new URL("http://www.esynaps.com/WebServices/DailyDiblert.asmx";),
  "http://tempuri.org/DailyDilbertImage";
);

if(response.generatedFault()) {
  throw new ServiceUnavailableException(response.getFault().toString());
} else {
  Parameter respParam=response.getReturnValue();
  if(respParam.getValue()!=null) {
    return new Base64().decode((String)respParam.getValue());
  } else {
    throw new ServiceUnavailableException("Function did not return a
value!");
  }
}

Why is it that I always have to give a serializer, too. This is of no use on
the client, as well as giving a deserializer on the server?

Anyway, I quickly added a new Service call QuoteOfTheDay, which took about 1
minute of copy&paste, so I've got something to present now.

Again, thank you very much,
Alexander

Reply via email to