axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fabri...@de9.ime.eb.br
Subject Re: How to collect a SOAP Message
Date Fri, 09 Sep 2005 20:12:36 GMT
Yes, I really need the SOAP Body.

I was studying the use of SOAP Handlers to achieve my intention. And it was:

1. I would create a web service with a generic input. (String)
2. I would create a server SOAP Handler to receive all messages going to my web
service.
3. The SOAP Handler would transform the SOAP Body content in a String to keep
up
with web service input. So, in my imagination, I could send any complex types
(Person: [Name,  age,  salary] ; Address: [street, city, state, coutry] ;
product: [Name, price] ;) from different clients. My Handler would get these
complex types and change them to a string and pass to web service as a String
now.

4. My web service would receive the Sting (but the content of it is a complex
type structure originally sent) and transform it to a Document (DOM) and them
extracts the information. As I want to arrive. 

So I would have a web service that could receive any complex type... without a
previously knowledge about the type being receiving and without changes client
method calls. The same client can pass a Person Java Bean, a String, a Adress
Java Bean to this my web service. 

But in my studies I noticed that the web service still needs a (DE)Serializer
for a type. I implemented my web service with a handler and sent a String form
client. Works fine. But,  when I sent a Person Java Bean an error saying:

No serializer found for class Person ...

was sent... And my Handler didn't receive anything as I track.

So, my intentions to transform a complex type to String inside the Handler
falled down.

I think I must abandon my idea, and make a web service to treat a single data
type, or make a web service that extract information from XML, but ensuring
that all my clients will sent only native XML documents, inside the SOAP Body.

I would like to thank all of you who help me with my crazy questions.

:-)

Fabrício.


Citando Linus Kamb <linus@iris.washington.edu>:

> Do you really need the SOAP Body, or do you just want a way to send arbitrary
> XML documents?
> 
> You can do the latter by having a doc/lit(wrapped) service that takes
> xsd:anyType (or 
> apachesoap:Element if you don't care about interoperability).  That produces
> a service 
> interface method signature of:
> 
> <return msg type> serviceMethod(org.w3c.dom.Element parameter);
> 
> If you use xsd:anyType in the wsdl, you need to add a type mapping in the
> wsdd from 
> xsd:anyType to Element using
> org.apache.axis.encoding.ser.Element(De)SerializerFactory.
> 
> fabricio@de9.ime.eb.br wrote:
> > Hello all,
> > 
> > Is there a way to implement a web service that can collect all the SOAPBody
> from
> > a SOAP Message? For instance, I have a client that sends the soap message
> to my
> > Web Service (WSA). My WSA must collects the SOAP Message, SOAP Body is
> most
> > important. And then, parse it as a XML file. 
> > 
> > I don't know how it could be possible. Because as I know, web services
> receives
> > the SOAP Message, but takes only the data type required. 
> > 
> > How my web service could be implemented to receives all the SOAPBody and
> > manually I could extract the information inside it? And the client? How
> does it
> > call this specific web service?
> > 
> > Thanks a lot for all the help,
> > 
> > Fabrício.
> > 
> > ----------------------------------------------------------------
> > This message was sent using IMP, the Internet Messaging Program.
> 


 

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Mime
View raw message