I'm currently using JBoss 4.0.3SP1 with W24EE as my SOAP Stack.  We re-did our 
webservices structure and implementation here to use W24EE as oppose to our 
older and more proprietary approach.  Unfortunately, we still need to handle 
the old message formats for some period.  My thought for solving this problem 
was to use SOAPHandlers to intercept the request and response and re-format if 
it's the old message type.  So, to test out how this works, I created an 
extension of GenericHandler and configured it in my webservices.xml.  I tested 
the initial implementation to make sure that it was at least being called and 
it was.  Next, I added a little more test logic to the handleRequest method to 
get the incoming parameter (a Long) and change it's value.  The method looks 
like this:

        public boolean handleRequest(MessageContext ctx) {
  |             System.out.println("In handle request-------------");
  |             org.jboss.axis.MessageContext axisCtx = 
(org.jboss.axis.MessageContext)ctx;
  |             Message m = axisCtx.getCurrentMessage();
  |             try {
  |                     SOAPElementAxisImpl envelope = m.getSOAPEnvelope();
  |                     Document doc = envelope.getAsDocument();
  |                     Element env = (Element)doc.getChildNodes().item(0);
  |                     Node body = env.getChildNodes().item(3);
  |                     Node methodName = body.getChildNodes().item(1);
  |                     Node param1 = methodName.getChildNodes().item(1);
  |                     Node valNode = param1.getFirstChild();
  |                     System.out.println("Value: " + valNode.getNodeValue());
  |                     valNode.setNodeValue("18541413");
  |                     System.out.println("New Value: " + 
valNode.getNodeValue());
  |             } 
  |             catch (AxisFault e) {
  |                     e.printStackTrace();
  |             } 
  |             return true;
  |     }

But after testing this logic, I could see that the parameter value was not 
being changed when the call made it to my Java Service Endpoint.  Am I doing 
something wrong here?  What can I do to ensure that the changes to the incoming 
SOAP XML actually take effect?

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3925665#3925665

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3925665


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to