axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Boorshtein <marc.boorsht...@octetstring.com>
Subject Re: Going from Text Based XML to a SOAPBody?
Date Sun, 01 Aug 2004 21:21:13 GMT
For now I am looking just to proof out the concept, so performance  
isn't my biggest concern.  The backend that will be generating the XML  
will be generating it to text (idrs.sourceforge.net).  Eventually  
depending on how I see the project going, I will probably adjust the  
idrs  so that instead of generating text, it generates a DOM model from  
the get-go.  Your technology looks great, but unfortunately the GPL  
isn't compatible with the MPL, which is what I have my own project  
under.
------------------------------------------------------------------------ 
--------------------------
Marc Boorshtein
Sr. Software Engineer, Octet String
marc.boorshtein@octetstring.com
On Aug 1, 2004, at 4:05 PM, Jimmy zhang wrote:

> Have you thought of ways to insert the XML message directly into the  
> SOAP body without parsing XML?
> Is that what is shown in the code?
> It seems that if parsing the message is required before the insertion  
> can be done, it is really inefficient.
> Check out http://vtd-xml.sf.net
> it has an XML processing (open sourced) that allows you to stick a  
> message directly into the other one. 
> Let me know if you have any questions.
> ----- Original Message -----
>  From: Marc Boorshtein
> To: axis-user@ws.apache.org
> Sent: Sunday, August 01, 2004 1:58 PM
> Subject: Re: Going from Text Based XML to a SOAPBody?
>
> I've made some great progress on this. I now have almost what I am  
> looking for. I have the following code in my invoke method:
>
> public void invoke(MessageContext msgContext) throws AxisFault {
> System.out.println("In INVOKE!!!!!!!!");
>
> Message resMsg = msgContext.getResponseMessage();
> SOAPEnvelope resEnv;
> // If we didn't have a response message, make sure we set one up
> // with the appropriate versions of SOAP and Schema
> if (resMsg == null) {
> resEnv = new SOAPEnvelope(msgContext.getSOAPConstants(), msgContext
> .getSchemaVersion());
>
> resMsg = new Message(resEnv);
> msgContext.setResponseMessage(resMsg);
> } else {
> resEnv = resMsg.getSOAPEnvelope();
> }
>
> Message reqMsg = msgContext.getRequestMessage();
> SOAPEnvelope reqEnv = reqMsg.getSOAPEnvelope();
>
> DocumentBuilderFactory domFactory = DocumentBuilderFactory
> .newInstance();
> DocumentBuilder domBuilder = null;
> Document doc = null;
> try {
> domBuilder = domFactory.newDocumentBuilder();
>
> doc = domBuilder.parse("/Users/mlb/test.xml");
>
> } catch (Exception e) {
> e.printStackTrace();
>
> }
>
> RPCElement body = null;
> body = new RPCElement("rpc-resp");
>
> RPCElement resBody = new RPCElement("Response");
> resBody.setPrefix(body.getPrefix());
> resBody.setNamespaceURI(body.getNamespaceURI());
> try {
> resBody.setEncodingStyle(msgContext.getEncodingStyle());
> RPCParam param = new RPCParam(new QName("http://soapinterop.org/",
> "echoString"), doc);
> resBody.addParam(param);
> resEnv.addBodyElement(resBody);
> } catch (SOAPException e1) {
> // TODO Auto-generated catch block
> e1.printStackTrace();
> }
>
> }
>
> I took most of the code from the JavaProdiver and the RPCProvider.  
> This will produce the following SOAP message:
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope  
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>  <soapenv:Body>
>  <echoString xmlns="http://soapinterop.org/">
>  <myxml xmlns="">
>  <val>test</val>
>  <val>test</val>
>  <val>test</val>
> </myxml>
> </echoString>
>  </soapenv:Body>
> </soapenv:Envelope>
>
> Everything is great except for the "<echoString" tag. The tag is  
> generated be the RPCParam which deserizlized the Document object. It  
> looks like that at this point I need to look at the RPCParam class to  
> see if I can create a version that will not create the wrapper tags  
> and will just de-serialize the Document into the soap body. Any  
> thoughts?
>
> ----------------------------------------------------------------------- 
> ---------------------------
> Marc Boorshtein
> Sr. Software Engineer, Octet String
> marc.boorshtein@octetstring.com
> On Aug 1, 2004, at 1:36 PM, Vijai Mohan wrote:
>
>
> I think that will work.
>
>  
>
>  
>
> Vijai Mohan
>
>
> Software Design Engineer
>
>
> SensorLogic¦M2M made easy.
>
>
> 972-934-7375 x 2111
>
>
> 972-934-7376 (fax)
>
>
> vmohan@sensorlogic.com
>
>
> www.Sensorlogic.com
>
>
>  <image.tiff>
>
>  
>
> -----Original Message-----
> From: Marc Boorshtein [mailto:marc.boorshtein@octetstring.com]
> Sent: Sunday, August 01, 2004 1:33 PM
> To: axis-user@ws.apache.org
> Subject: Re: Going from Text Based XML to a SOAPBody?
>
>  
>
> Thanks for the tip, but this is a bit simple for what I'm looking to  
> do. I'd like to build a provider that will let me take the XML in the  
> request's body, perform some tasks to extract the information into an  
> object model and then pass that information into a dynamic content  
> generation system to generate some XML and add it to the SOAPBody.  
> From the looks of it, I can serialize the XML into Document as you  
> showed below, and then create an RPCElement and add it to the body as  
> it's done in RPCProvider. Is this correct?
>
> ----------------------------------------------------------------------- 
> ---------------------------
> Marc Boorshtein
> Sr. Software Engineer, Octet String
> marc.boorshtein@octetstring.com
> On Aug 1, 2004, at 12:41 PM, Vijai Mohan wrote:
>
>
>
> Create a simple webservice and use this snippet to return a xml  
> document
> from an xml file.
> Axis automatically converts the Document in to the soap body .
>
>
> public static Document getXMLDocument(){
> DocumentBuilderFactory domFactory = DocumentBuilderFactory
> .newInstance();
> DocumentBuilder domBuilder = null;
> try {
> domBuilder = domFactory.newDocumentBuilder();
>
> Document doc = domBuilder.parse("c:\\XMLFILE.xml");
>
> return doc;
> } catch (Exception e) {
> e.printStackTrace();
> return null;
> }
> }
>
> Vijai Mohan
> Software Design Engineer
> SensorLogic¦M2M made easy.
> 972-934-7375 x 2111
> 972-934-7376 (fax)
> vmohan@sensorlogic.com
> www.Sensorlogic.com
>
>
>
> -----Original Message-----
> From: Marc Boorshtein [mailto:marc.boorshtein@octetstring.com]
> Sent: Sunday, August 01, 2004 12:11 PM
> To: axis-dev@ws.apache.org; axis-user@ws.apache.org
> Subject: Going from Text Based XML to a SOAPBody?
>
> Hello,
>
> I am working on implementing a document service in which I want to take
> text representation of XML and add it to a SOAPBody. From the looks of
>  it, it appears that I have to use an XML Parser to go from
> XML->SOAPElement in a similar way that I would parse XML into a DOM
> Tree. The only problem is that I can't find this "parsing" class. I
>  found SOAPFactory, but it doesn't seem to be a parser. Am I missing
> something?
>
> Thanks!
>
> ----------------------------------------------------------------------- 
> -
> --------------------------
> Marc Boorshtein
> Sr. Software Engineer, Octet String
> marc.boorshtein@octetstring.com
>
>

Mime
View raw message