Hello Ralf:
If I switch to Axis2 later, will this approach work for Axis2.

Thanks,
Ravi
Ravi Krishnamurthy wrote:

Thanks.

I have one more question: There are 2 steps involved in my project:
   a. configuring the webservice
means looking up the wsdl, and mapping the input and output parameters

   b. invoking the webservice

When I invoke the webservice, the proxy information works great as per your suggestion.

Interestingly when I invoke the webservice, I introspect the wsdl using the org.apache.axis.wsdl.gen.Parser.run(wsdluri). Observed that the Parser API has username and password but they are not for the proxy. Wondering how to use the proxy information using the Parser class.

Thanks,
Ravi

Ralf Bust wrote:

Yes, works for axis used as client consuming a webservice.

rb

Ravi Krishnamurthy schrieb:

Ralf:
May be a dumb question.

The following code does it execute on the client side or on the server side. In my case, I'm using Axis to talk to any webservice ( may not be using axis). Hope your valuable suggestion is executed on the client side.

Regards,
Ravi

Ralf Bust wrote:

Hi,

Easy-Way-Solution: (probably not the best, but working)

Write a Class implementing DefaultHTTPTransportClientProperties.
Overwrite the getters() with your code.
Everytime a SOAP Call will be made is will look into your Class to get the apropriate Proxy settings.

Load class with(VM Arguments):
-Dorg.apache.axis.components.net.TransportClientProperties=name.of.your.classWhatever
or change within your application with:
System.getProperties().setProperty("org.apache.axis.components.net.TransportClientProperties","name.of.your.classWhatever");

/*
* Axis is directed to use this class instead of
* org.apache.axis.components.net.TransportClientProperties by
* setting the System property
*
* This reads proxy settings from the MessageContext to give per-request proxysupport
*/

public class AxisTransportClientProperties extends
DefaultHTTPTransportClientProperties
{
  public String getProxyHost()
  {
    // Retrieve proxy info from Message context every time
    String ret = null;
    MessageContext context = MessageContext.getCurrentContext();
    if (context != null)
      {
    ret = (String) context.getProperty("whatever.you.want);
      }

    if (ret == null)
      {
    // use System property if set
    ret = super.getProxyHost();
      }

    return ret;
  }

}

or analye the Endpoint:

    String targetService;
    targetService = context.getTargetService();
    if (targetService.startsWith("http://www.apache.org";)){
      // do what y want
    }


Hope this helps.

Ralf Bust

Merten Schumann schrieb:

Per webservice .. how could you do that???
   Merten

-----Original Message-----
From: Somendra Paul [mailto:[EMAIL PROTECTED] Sent: Thursday, November 03, 2005 7:03 AM
To: axis-user@ws.apache.org
Subject: Re: proxy server information

It should ge set per jvm.But if you want to use
different proxy servers for different calls,then it
should be set per webservice.

Regards,
Somendra


--- Ravi Krishnamurthy <[EMAIL PROTECTED]> wrote:


Hello:
Can the proxy server settings like http.proxyHost be
set per webservice call or it should be set per jvm.

Thanks,
Ravi












Reply via email to