Hi Fitzgerald,

the Soap Dataformat only works if you generate code for the wsdl. Internally 
the dataformat analyzes the generated classes and does the mapping to soap 
using these. 

Honestly I don´t understand how this should work without the generated classes. 
Do you still want to call the route with a java object like before? If yes how 
should camel know how to serialize it?

If you want to use xml instead you do not need the soap dataformat. Instead you 
can simply use a http endpoint.

Best Regards

Christian



Christian Schneider
Informationsverarbeitung 
Business Solutions
Handel und Dispatching

Tel : +49-(0)721-63-15482

EnBW Systeme Infrastruktur Support GmbH
Sitz der Gesellschaft: Karlsruhe
Handelsregister: Amtsgericht Mannheim ­ HRB 108550
Vorsitzender des Aufsichtsrats: Dr. Bernhard Beck
Geschäftsführer: Jochen Adenau, Hans-Günther Meier


-----Ursprüngliche Nachricht-----
Von: fitzgerald [mailto:[email protected]] 
Gesendet: Mittwoch, 20. Oktober 2010 15:16
An: [email protected]
Betreff: Calling Soapservices using SoapDataFormat


Hallo 

The intention of our developing issue was to call, a soap webservice from
camel via the producertemplate.
As base of our researching we used this site.
http://camel.apache.org/soap.html http://camel.apache.org/soap.html 
Proxy code generation with wsdl to code generators, should not be used,
instead a kind of codeless proxy which we thougt is provided by camel and
was done in the following way by setting
the endpoint wsdlurd,portname and servicename

Like in the sample contained in the link we used SoapJaxbDataFormat
SoapJaxbDataFormat soapDF = new SoapJaxbDataFormat("com.siemens.zcsisuint");
soapDF.setElementNameStrategy(new ServiceInterfaceStrategy(xx.class)

The producertemplate sends data in following way
prodtemp.sendBody("direct:start",ExchangePattern.InOut, xxmessagepojo);

So far it works fine.

But then in the next iteration we tried to become to live without the
proxyclasses and changed the soapdataformatbinding to (to be able to get
away from the proxyclasses)

QName elementName = new QName("http://www.example.com/ZCSISUINT/";,
"NewOperation");
                                 QNameStrategy strategy = new 
QNameStrategy(elementName);
                                 SoapJaxbDataFormat soapDF = new 
SoapJaxbDataFormat();
                                 soapDF.setElementNameStrategy(strategy);

The result is marshalling doesn't work anymore.A bulk of exceptions is
thrown.
The important one seems to be 
Caused by: javax.xml.bind.JAXBException:
org.xmlsoap.schemas.soap.envelope.Envelope is not known to this context.

I think it isn't possible to marshal data from a producer to a external
soapwebservice without generated proxy classes (only using a wsdl file,
without proxy code)!

Is that right ?

Cheers
Fitzgerald




-- 
View this message in context: 
http://camel.465427.n5.nabble.com/Calling-Soapservices-using-SoapDataFormat-tp3228535p3228535.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to