The Element[] parameter should have been added to your methods - are you 
saying this didn't happen? I just tried this, and I found that wsdl2java 
adds the Element[] parameter to both methods and constructors (adding it 
to constructors is a bug, albeit a harmless bug for now). I'd like to make 
sure you can invoke the operations you defined w/o having to call the 
generic invoke() yourself.

Dan



"Beil, Matthias" <[EMAIL PROTECTED]> wrote on 03/29/2007 09:30:16 AM:

> Hi,
> 
> The suggestion from Dan to use wsdl2java -wsdl MyResource.wsdl -headers 
> produced something like this:
> 
> public class WsnOssjPortProxy extends NotificationProducerClient 
implements WsnOssjPort
> {
>     public WsnOssjPortProxy(EndpointReference param0, Element[] 
customHeaders)    {
>         super(param0);
>     }
> }
> 
> Meaning the customHeaders where added but I could not set them to the 
super class :-(
> 
> So I extended NotificationProducerClient and could then call the 
> 
> final Element responseXML = this.invoke(WsnConstants.GET_CURRENT_URI, 
get.
> toXML(), extraHeaders);
> 
> method, where I could use the extraHeaders.
> 
> I filled the extraHeaders with the WS-Security element which I created 
with this:
> 
> package com.ascom.ossj.wsn.producer.test;
> 
> import org.apache.muse.util.xml.XmlUtils;
> import org.apache.muse.ws.addressing.soap.SoapConstants;
> import org.apache.ws.security.WSConstants;
> import org.apache.ws.security.message.WSSecHeader;
> import org.apache.ws.security.message.WSSecUsernameToken;
> 
> import org.w3c.dom.Document;
> import org.w3c.dom.Element;
> 
> public final class Wss4jTestClient {
> 
>    public static void main(final String[] args) {
> 
>       // create doc element
>       Document doc = XmlUtils.createDocument();
>       Element soapXML = XmlUtils.createElement(doc, 
SoapConstants.ENVELOPE_QNAME);
> 
>       // add child element, otherwise it doesn't go
>       doc.appendChild(soapXML);
> 
>       // get security header
>       WSSecHeader secHeader = new WSSecHeader();
>       secHeader.insertSecurityHeader(doc);
> 
>       // get user token
>       WSSecUsernameToken sec = new WSSecUsernameToken();
>       sec.addCreated();
>       sec.addNonce();
>       sec.setPasswordType(WSConstants.PASSWORD_DIGEST);
>       sec.setUserInfo("test", "test");
> 
>       // create usertoken element
>       sec.prepare(doc);
> 
>       // add usertoken element to header
>       sec.prependToHeader(secHeader);
> 
>       // get security element
>       Element secElement = secHeader.insertSecurityHeader(doc);
> 
>       System.out.println(XmlUtils.toString(secElement));
>       System.out.println(XmlUtils.toString(soapXML));
>    }
> }
> 
> Finally I had to extend on the server side the classes 
> NotificationConsumerClient and SimpleSubscriptionManager to have again 
access to the 
> 
> this.invoke(WsnConstants.NOTIFY_URI, notify, this.getSecurityHeader()); 
> 
> method.
> 
> With this modification I got WS-Security working with Muse. Now the 
notify 
> message has also a WSSE header when send to the consumer.
> 
> Still have to find out why the SoapFault is not returned correctly. But 
this 
> is a matter of setting up Axis2 with rampart and not of Muse ;-)
> 
> Best regards,
> Matthias
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Beil, Matthias [mailto:[EMAIL PROTECTED] 
> Gesendet: Mittwoch, 28. März 2007 09:16
> An: [email protected]
> Betreff: AW: AW: Setting ConfigurationContext for 
NotificationProducerClient
> 
> Hi Dan,
> 
> thx for the reply.
> 
> I had a look at the source code and saw that the client is using 
> HttpURLConnection to output the message. So the client does not use 
axis2 to 
> send the messages, meaning I will try to use WSS4J directly.
> 
> What I also found out, is that this is also valid for the notify method 
on the
> server!!! I just wanted to test the notify message between the producer 
web 
> service and the consumer web service, but there wasn't any security 
header 
> send. The source code showed me that the "notify" method at the web 
service 
> producer is also implemented as a direct http call. This means that also 
here 
> I must provide some headers.
> 
> I will see how to manage that.
> 
> Best regards,
> Matthias
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Daniel Jemiolo [mailto:[EMAIL PROTECTED] 
> Gesendet: Dienstag, 27. März 2007 20:19
> An: [email protected]
> Betreff: Re: AW: Setting ConfigurationContext for 
NotificationProducerClient
> 
> I'm guessing the clients that Axis's wsdl2java generates look for this 
> file/repository automatically, which is why following the steps in the 
> article still doesn't work. Right now the Muse client API has a way to 
> generate methods so that you can add custom SOAP headers to your 
request. 
> If you do:
> 
>         wsdl2java -wsdl MyResource.wsdl -headers
> 
> It will add to each method signature an additional parameter, Element[] 
> customHeaders, which you can use to pass things like WS-Security values. 

> Would it be possible to use the WSS4J API directly to add the headers 
you 
> need for the request?
> 
> Dan
> 
> 
> 
> "Beil, Matthias" <[EMAIL PROTECTED]> wrote on 03/27/2007 10:55:18 AM:
> 
> > Hi Dan,
> > 
> > thx for the reply.
> > 
> > Yes, the ConfigurationContext is part of Axis2 client API. What I've 
> found out
> > so far for the integration of rampart is that I need on the client 
side 
> an 
> > axis2.xml file and also a service.xml file. In other words this means 
> that I 
> > have to set up a client side repository. 
> > 
> > I found following URL http://wso2.org/library/585 for "Different Ways 
of 
> 
> > Creating a ConfigurationContext in Axis2". I tried to set the 
properties 
> -
> > Daxis2.xml and -Daxis2.repo but that seems not to be enough.
> > 
> > So I think what I need is a way to make the Muse classes 
> ConfigurationContext 
> > aware, or at least set the Axis environment with a configuration 
context 
> so 
> > that the client repository is used. As rampart is a Axis2 handler the 
> server 
> > call must go through Axis2 handlers.
> > 
> > Setting up the server side was easy, now the server rejects each 
> incoming 
> > message as there is no security header ;-)
> > 
> > Best regards,
> > Matthias
> > 
> > -----Ursprüngliche Nachricht-----
> > Von: Daniel Jemiolo [mailto:[EMAIL PROTECTED] 
> > Gesendet: Dienstag, 27. März 2007 16:20
> > An: [email protected]
> > Betreff: Re: Setting ConfigurationContext for 
NotificationProducerClient
> > 
> > Is the client's ConfigurationContext part of the Axis2 client API? The 

> > generated clients aren't Axis2-based clients, so I'm not sure how 
you'd 
> > add that in. Perhaps you can tell us exactly what is involved in 
making 
> > the client aware of Rampart and we can propose a way to integrate the 
> > Axis2 API usage with the Muse client class.
> > 
> > Dan
> > 
> > 
> > 
> > "Beil, Matthias" <[EMAIL PROTECTED]> wrote on 03/26/2007 12:13:30 PM:
> > 
> > > Hi,
> > > 
> > > 
> > > 
> > > is there a way in Muse to set the ConfigurationContext for the 
client?
> > > 
> > > 
> > > 
> > > I need to set the ConfigurationContext in the client to make the 
> client
> > > aware of the rampart initialization. As I don't want to start to 
write 
> a
> > > complete new client I would like to continue to use the Muse 
> convenient
> > > NotificationProducerClient class. But I can't find a way how to set 
> the
> > > ConfigurationContext.
> > > 
> > > 
> > > 
> > > Just setting the -Daxis2.xml and -Daxis2.repo variables don't change
> > > anything.
> > > 
> > > 
> > > 
> > > Mit freundlichen Gruessen / With kind regards
> > > 
> > > Matthias Beil
> > > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to