I think you should try to use WSS4J's handlers. All the dirty work
regarding implementation of the OASIS specs for Web Services Security
is already taken care of in WSS4J:

- 
http://ws.apache.org/ws-fx/wss4j/apidocs/org/apache/ws/axis/security/package-summary.html
- http://ws.apache.org/ws-fx/wss4j/

Thanks,
dims



On Fri, 4 Jun 2004 10:21:57 -0400, Jose M. Selman <[EMAIL PROTECTED]> wrote:
> 
> Dims:
>     I did, but that example uses a service with no parameters. In my case I
> need to include a String as a parameter. I have been trying to use XMLUtils
> to generate the SOAP Body (with one parameter) myself, just like the sample,
> but I haven't been able to get it right. I appreciate your help.
> 
> Cheers,
> 
> Jose M. Selman
> 
> 
> 
> 
> ----- Original Message -----
> From: "Davanum Srinivas" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, June 04, 2004 9:04 AM
> Subject: Re: Re: How to get the SOAP Envelope from msg Context without
> invocatio n
> 
> > please take a look at the samples/security/* for an example that does
> xml-dsig.
> >
> > thanks,
> > dims
> >
> >
> > ----- Original Message -----
> > From: Dhanush Gopinath <[EMAIL PROTECTED]>
> > Date: Fri, 4 Jun 2004 09:20:21 +0530
> > Subject: Re: How to get the SOAP Envelope from msg Context without
> invocatio
> > n
> > To: [EMAIL PROTECTED]
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Jose,
> >
> >
> >
> > You wont be able to get a SOAPEnvelope at the client
> > end after the call or before the call .. because before the call there is
> no
> > SOAPMessage and after the Call the response is over.
> >
> >
> >
> > and Call.getMessgaeContext() will return a null value.
> > So you cant access that Message Context.
> >
> >
> >
> > How ever you can do one thing.
> >
> >
> >
> > You can implement a Handler which will be invoked only
> > in the requestFlow and can then manipulate the SOAPMessage and the Handler
> end.
> >
> >
> >
> >
> > To do that you must add a handler in the deploy.wsdd
> > file and write a Handler class which extends the BasicHandler class of
> Axis
> > APIs.
> >
> >
> >
> >  <handler name="AttachmentHandler"
> > type="java:com.bt.oexgateway.webservices.AttachmentHandler"/>
> >
> >
> > <service name="TestOAGXMLService" provider="java:RPC" style="rpc"
> > use="encoded">
> >     <requestFlow>
> >
> > <handler type="AttachmentHandler"/>
> >
> > </requestFlow>
> >     <responseFlow>
> >
> > <handler type="AttachmentHandler"/>
> >
> > </responseFlow>
> > ....
> >
> > </service>
> >
> >
> >
> > The handler class will be something like this
> >
> >
> >
> >
> > import
> > org.apache.axis.handlers.BasicHandler;
> >
> >
> > public class AttachmentHandler extends
> > BasicHandler
> > {
> >
> >  public void invoke(MessageContext msgContext)
> > throws AxisFault
> >  {
> >   System.out.println("Hi Hi Handler
> > Invoked !! ");
> >
> >   //  Gets the Request SOAP
> > Message
> >    Message reqMsg =
> > msgContext.getRequestMessage();
> >   //  Gets the response SOAP
> > Message
> >    Message respMsg =
> > msgContext.getResponseMessage();
> >
> >
> > ...
> >
> > ....
> >
> > }
> >
> > }
> >
> >
> >
> > During the call from the client the method invoke() of
> > the declared handler is called . It depends on the declaration in the WSDD
> file
> > . If  you need it in both requestFlow and responseFlow then give as above
> > wsdd. if you need only in request then only <requestFlow> is needed..
> > Depends upon you and ur application.
> >
> >
> >
> > People, Hope I am right here.
> >
> > Hope this helps you
> >
> >
> >
> > Cheers
> >
> > Dhanush
> >
> >
> >
> >
> >   ----- Original Message -----
> >
> > From:
> >   Jose M. Selman
> >
> > To: [EMAIL PROTECTED]
> >
> > Sent: Friday, June 04, 2004 8:00 AM
> >
> > Subject: How to get the SOAP Envelope
> >   from msg Context without invocation
> >
> >
> > Hi:
> >     I'm
> >   writing an Axis Client that needs to send RPC style signed
> >   requests
> > according to XML-DSIG. My problem is that in order to sign the
> >   SOAP Envelope
> > I need to first have it! :-) I have looked everywhere but I
> >   haven't found
> > where to do this.
> >
> > I'm doing
> >
> > Service service =
> >   new Service();
> > Call call = (Call)
> >   service.createCall();
> > call.setTargetEndpointAddress( new
> >   java.net.URL(endPoint) );
> > call.setOperationName( new QName(endPoint,
> >   operationName) );
> > call.addParameter( "String", XMLType.XSD_STRING,
> >   ParameterMode.IN );
> > call.setReturnType( XMLType.XSD_STRING );
> > String
> >   resu = (String) call.invoke(new Object[] { "Some String Input"
> >   });
> >
> > After this last statement I can get the SOAP Message from the
> >   message
> > context doing:
> >
> > mc = call.getMessageContext();
> > env =
> >   request.getSOAPEnvelope();
> >
> > But the service was already invoked!!!Is
> >   there any way of setting the
> > parameters used for a call without actually
> >   invoking the service?
> >
> > Cheers,
> >
> > Jose M
> > Selman
> >
> >
> >
> >
> > *********************************************************
> > Disclaimer:
> >
> > This message (including any attachments) contains
> > confidential information intended for a specific
> > individual and purpose, and is protected by law.
> > If you are not the intended recipient, you should
> > delete this message and are hereby notified that
> > any disclosure, copying, or distribution of this
> > message, or the taking of any action based on it,
> > is strictly prohibited.
> >
> > *********************************************************
> > Visit us at http://www.mahindrabt.com
> 
>

Reply via email to