This may not be the best example, but its something for you to look at. I
have an entry on my todo list to make something better looking, but somehow
things just appear in front of it.

This is a helloworld type service that takes requests with the body of:

<helloService xmlns="http://myorg.com/hello";>
        <name xsi:type="xsd:string">Taras</name>
        <name xsi:type="xsd:string">World</name>
</helloService>

***************************************


    //Process the HTTP Post request
    public void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {

                String contentType=request.getContentType();
                if(contentType==null){
                        contentType="text/xml";
                }
                String
contentLocation=request.getHeader("Content-Location");

                AxisClient ac=new AxisClient ();
                MessageContext mc=new MessageContext(ac.getClientEngine());
//********************
                TypeMappingRegistry reg=mc.getTypeMappingRegistry();
                //register your types here
                mc.setTypeMappingRegistry(reg);
//********************

                Message reqMsg=new
Message(request.getInputStream(),false,contentType,contentLocation);
                mc.setRequestMessage(reqMsg);
                SOAPEnvelope reqEnv=reqMsg.getSOAPEnvelope();

//start non axis code
                SOAPHeader deliveryHdr=
reqEnv.getHeaderByName(GCSerializerConstants.TYPE_DELIVERY.getNamespaceURI()
,
        
GCSerializerConstants.TYPE_DELIVERY.getLocalPart());
                CLDelivery delivery=(CLDelivery) deliveryHdr.getValue();
                //Enjoy your object here
//end non axis code

                ArrayList
children=reqEnv.getBodyByName("http://myorg.com/hello","helloService";).getCh
ildren();

                SOAPEnvelope env=new SOAPEnvelope();
                TypeMapping
tm=(TypeMapping)mc.getTypeMappingRegistry().getTypeMapping(Constants.URI_SOA
P_ENC);
                QName stringType=tm.getTypeQName(String.class);
                SOAPBodyElement body=new SOAPBodyElement();
                body.setName("helloServiceResponse");
                body.setNamespaceURI("http://myorg.com/hello";);
                for(Iterator it=children.iterator();it.hasNext();){
                        MessageElement nameNode=(MessageElement) it.next();
                        String name=null;
                        try{
                                name=(String)nameNode.getValue();
                        }catch(Exception e){
                                e.printStackTrace();
                        }
                        MessageElement helloTo=new MessageElement();
                        helloTo.setValue("Hello "+name);
                        helloTo.setType(stringType);
                        helloTo.setName("helloTo");
                        body.addChild(helloTo);
                }
                env.addBodyElement(body);

//start non axis code
                CLPost post=new CLPost();
                post.setToken(delivery.getToken());
                SOAPHeader postHdr=new SOAPHeader(null,null,post); //excuse
the nulls, my deserializer handles them
                env.addHeader(postHdr);
//end non axis code
                Message respMsg=new Message(env);
                mc.setResponseMessage(respMsg);

//console polution
                respMsg.writeContentToStream(System.out);
//end console polution

                response.setContentType(respMsg.getContentType());
                response.setContentLength(respMsg.getContentLength());
                OutputStream out = response.getOutputStream();
                respMsg.writeContentToStream(out);
                out.flush();
                out.close();
    }


-----Original Message-----
From: Frank van Lingen [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 04, 2002 6:30 PM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: axis message example


Hi,
 
The only example in axis that deals with messages is "proxy". However, this
seems not to be an complete example. Does anybody know (or has) a good stand
alone example that uses messages instead of RPC?
 
Frank van Lingen

Reply via email to