Ugh please no :-D

I'd recommend taking a look at the JAX-WS provider/dispatch mechanisms. You
can send a Source object via the Dispatch (and it will wrap it with a SOAP
body if necessary or handle whatever binding stuff needs to happen). On the
server side you can then receive the XML via a Provider. Once again you'll
get a Source object which should be easy enough to work with.

I believe there are some ok samples here:

http://java.sun.com/mailers/techtips/enterprise/2006/TechTips_July06.html

- Dan

On 6/5/07, Dan Connelly <[EMAIL PROTECTED]> wrote:

The most straight-forward (but moderately inefficient) way to process
XML messages within SOAP is to have a service method that merely
exchanges Request-Response XMLs (Strings byte[ ]s),. like so in the
service Interface:

public interface String getResponse(String myRequestAsXml) ;

Implement the service in XSL transforms.

For real-life XML "eFile" messaging service see :
http://www.streamlinedsalestax.org/EFileService-1.0.1.wsdl



Shaw, Richard A wrote:
> I'm not sure if we are talking at cross purposes here. So I'll give an
example -
>
> My logical message is -
>
> <AddNumbers>
>       <First>10</First>
>       <Second>20</Second>
> </AddNumbers>
>
> I want to call a Dispatch and pass in the XML as above.
>
> If I set the binding in my wsdl file to be pure XML, I expect to see the
XML above passed over the transport.
>
> If I changed the binding to SOAP, I would expect it to look like -
>
> <SOAP-ENV:Envelope>
>       <SOAP-ENV:Body>
>               <AddNumbers>
>                       <First>10</First>
>                       <Second>20</Second>
>               </AddNumbers>
>       </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> If I changed the binding to be Corba it would be in a binary coded
format
>
> (not shown)
>
> My understanding of the interceptor chain is as follows (and maybe I
have this wrong, which is where my mis-understanding lies) -
>
> Client side
> ===========
> A - I call a function of my port using java objects
> B - It gets converted into XML (JAXB)
> C - XML goes through binding layer to format the message
> D - The transport sends the formatted message
>
> Server Side
> ===========
> E - Transport receives the message
> F - binding layer decodes message into XML logical message
> G - XML is converted into java objects (JAXB)
> H - I have my message as a java object
>
> I want this process to start at C and end after F so that I pass a
logical XML message and receive my reply as a logical XML message even
though the binding/transport may not have used XML for the communication.
I'm doing this at the moment by adding my own JAXB calls before A and after
H.
>
> Richard Shaw
>
> ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø¤º°`°º¤ø,¸¸,ø¤
>
> Richard Shaw
> Technical Design Authority - Information Solutions Consultancy
> Intelligent Transport Systems
>
> Atkins Highways and Transportation
> Woodcote Grove, Ashley Road, Epsom, Surrey, KT18 5BW
>
> Tel: +44 (0) 1372 756407
> Fax: +44 (0) 1372 740055
> Mob: 07740 817586
> E-mail: [EMAIL PROTECTED]
>
> www.atkinsglobal.com/its
>
> -----Original Message-----
> From: Freeman Fang [mailto:[EMAIL PROTECTED]
> Sent: 05 June 2007 11:23
> To: [email protected]
> Subject: Re: Skipping some layers in the interceptor chain
>
> Hi Richard,
> Comment inline
> Shaw, Richard A wrote:
>
>> If I use the dispatch interface does CXF still pass it through the
binding and transport layers ?
>>
>>
> It only skip mashall/unmashall for binding layer, but can not  skip the
transport layer, anyway, you need deliver message to remote process
>
>> The XML in the sample is a soap message which would suggest to me that
it isn't using the binding because that would normally convert the XML into
SOAP.
>>
>> My use case requires me to talk to various legacy services using more
than SOAP.
>>
>>
>>
> SOAP payload is not compulsory here, you can use any payload you like.
>
> Thanks very much
>
> Freeman
>
>
>
>> Richard Shaw
>>
>> ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø¤º°`°º¤ø,¸¸,ø¤
>>
>> Richard Shaw
>> Technical Design Authority - Information Solutions Consultancy
>> Intelligent Transport Systems
>>
>> Atkins Highways and Transportation
>> Woodcote Grove, Ashley Road, Epsom, Surrey, KT18 5BW
>>
>> Tel: +44 (0) 1372 756407
>> Fax: +44 (0) 1372 740055
>> Mob: 07740 817586
>> E-mail: [EMAIL PROTECTED]
>>
>> www.atkinsglobal.com/its
>>
>> -----Original Message-----
>> From: Liu, Jervis [mailto:[EMAIL PROTECTED]
>> Sent: 04 June 2007 03:20
>> To: [email protected]
>> Subject: RE: Skipping some layers in the interceptor chain
>>
>> Hi Richard,
>>
>> Can't you use Dispatch interface? Sth like below shall allow you to
>> skip unnecessary JAXB marshalling ( code snippet from CXF
>> dispatch_provider sample)
>>
>>         QName serviceName3 = new QName("
http://apache.org/hello_world_soap_http";, "SOAPService3");
>>         QName portName3 = new
>> QName("http://apache.org/hello_world_soap_http";, "SoapPort3");
>>
>>         SOAPService3 service3 = new SOAPService3(wsdlURL,
serviceName3);
>>         DOMSource domReqPayload = new DOMSource(..................);
>>         Dispatch<DOMSource> dispDOMSrcPayload = service3.createDispatch
(portName3,
>>
>> DOMSource.class, Mode.PAYLOAD);
>>
>>         DOMSource domRespPayload = dispDOMSrcPayload.invoke
(domReqPayload);
>>
>>
>> Cheers,
>> Jervis
>>
>>
>>
>>
>>> -----Original Message-----
>>> From: Shaw, Richard A [mailto:[EMAIL PROTECTED]
>>> Sent: 2007?6?1? 23:33
>>> To: [email protected]
>>> Subject: Skipping some layers in the interceptor chain
>>>
>>>
>>> I have the following requirement and was wondering whether anybody
>>> could tell me if it is possible -
>>>
>>> 1 - I have an XML string which represents the logical message for a
>>> request
>>> 2 - I want to use this to make a request on an appropriate service
>>> 3 - I want to catch the reply at the XML level without creating a
>>> java object
>>> 4 - transform the reply using a XSL stylesheet to be the logical
>>> message of another service
>>> 5 - send the logical message to the final service
>>>
>>> This is for a generic data fetch. It requests data from a SOA
>>> component, transforms the data into a set message, which is sent to
>>> my datastore component. I don't want to write a new component for
>>> every type of data source that I want to fetch data from.
>>>
>>> I have implemented the above using the original Celtix code, but it
>>> has the following inefficiencies -
>>>
>>> 1 - I load the XML from my config. unmarshal it into an object and
>>> then use that to call my service which will marshal as its first step
>>> 3 - the response is unmarshalled into a java object so I then marshal
>>> it back to an XML stream to pass to the XSLT transformer
>>> 5 - I unmarshal the transformed XML into a java object and use that
>>> to call my data storage service
>>>
>>> Thanks
>>>
>>> Richard Shaw
>>>
>>> ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø¤º°`°º¤
>>> ø,¸¸,ø¤
>>>
>>> Richard Shaw
>>> Technical Design Authority - Information Solutions Consultancy
>>> Intelligent Transport Systems
>>>
>>> Atkins Highways and Transportation
>>> Woodcote Grove, Ashley Road, Epsom, Surrey, KT18 5BW
>>>
>>> Tel: +44 (0) 1372 756407
>>> Fax: +44 (0) 1372 740055
>>> Mob: 07740 817586
>>> E-mail: [EMAIL PROTECTED]
>>>
>>> www.atkinsglobal.com/its
>>>
>>>
>>>
>>> This email and any attached files are confidential and copyright
>>> protected. If you are not the addressee, any dissemination of this
>>> communication is strictly prohibited.
>>> Unless otherwise expressly agreed in writing, nothing stated in this
>>> communication shall be legally binding.
>>>
>>> The ultimate parent company of the Atkins Group is WS Atkins plc.
>>> Registered in England No. 1885586.  Registered Office Woodcote Grove,
>>> Ashley Road, Epsom, Surrey KT18 5BW.
>>>
>>> Consider the environment. Please don't print this e-mail unless you
>>> really need to.
>>>
>>>
>>>
>> This message has been scanned for viruses by MailControl - (see
>> http://bluepages.wsatkins.co.uk/?6875772)
>>
>>
>>
>
>




--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Reply via email to