Hi Rodrigo,
these ideas are very interesting.
First of all, thanks a lot for that.
But for the first way of making the host address configurable, I still
have to ask you, how to do that in detail?
I don't mean how to read the address from a properties file, but how can
I set the value?
Carsten
Am Montag, den 15.05.2006, 17:28 +0200 schrieb Rodrigo Ruiz:
> Carsten,
>
> In fact, there are several ways to handle your situation, but I
> guess
> almost none of them is as simple as adding some lines to your client
> code. The ones I know are:
>
> - Make the host address configurable. That is, read the host address
> from a configuration file. I know this is not what you are asking
> for,
> but it is probably the only easy workaround to your problem. In fact,
> I
> think it will be the only one that will work if you want to test
> your
> client application from the same host, and manually select the
> adapter
> to use.
>
> - You may use DNS to provide a common name to your server, and access
> it
> through host name, instead of host address. This probably means some
> work to get your client domain name, in order to build the complete
> host
> name in each subnetwork, or be sure that using the host name without
> a
> domain name will return you the correct host address in all cases.
>
> - In a more complicated fashion, you could decide to convert your
> service in a "standard" service, and register it into your DNS
> servers.
> DNS protocol allows to register the addresses for "standard"
> services,
> providing a simplistic discovery service, and allowing you to ask for
> a
> service name, instead of a host name. AFAIK, this option is not
> usual,
> but it should work. I am not sure, but you may probably need to use
> Jakarta commons-net library to perform such kind of queries to your
> DNS
> server.
>
> - You can delegate the problem to a well-known UDDI server. Anyway,
> if
> you use TCP/IP, this will just move your problem from one host to
> another, as this UDDI server/s will probably also have different
> addresses in each sub-network.
>
> - You might use some UDP based discovery service. The idea in this
> case
> would be to send a broadcast message, and receive the appropriate
> address from some arbitrary point on your network. If you implement
> such
> a service in your own server, you will probably be able to get the
> host
> address from the response message meta-data itself. There are some
> standard libraries for achieving this out there, or you could try to
> implement your own, as it is plenty of examples on Google ;-)
>
> Hope this helps,
> Rodrigo
>
>
> Carsten Schmidt wrote:
> > Hi Alain,
> > thanks for your answer, but it seems as if the
> NetworkInterface-class
> > would just be able to give you information about the interfaces.
> >
> > For me, it is important to tell the program which Interface to use,
> > because the webserver I'm working on got different IP's in
> different
> > sub-networks.
> >
> > So, I am looking for a method like setHostAdress(foo). Maybe this
> is
> > more a part of java than axis, but the Axis-Call-class seems to
> handle
> > the whole hardware/network-stuff on it's own.
> >
> > I can't believe that there is no smart way to handle this.
> >
> > Carsten
> >
> >
> > Am Montag, den 15.05.2006, 16:28 +0200 schrieb Pannetier Alain:
> >> Hi Carsten,
> >>
> >> Here is an example I use to know whether I'm in the office or at
> >> home :
> >>
> >> try {
> >> Enumeration myInterfaces =
> >> NetworkInterface.getNetworkInterfaces();
> >> interfaceEnum:
> >> while ( myInterfaces.hasMoreElements()) {
> >> NetworkInterface netInterf = (NetworkInterface)
> >> myInterfaces.nextElement();
> >> Enumeration addresses = netInterf.getInetAddresses() ;
> >> while (addresses.hasMoreElements()) {
> >> InetAddress address = (InetAddress)
> >> addresses.nextElement();
> >> if
> >> ( address.getHostAddress().startsWith( OFFICE_PREFIX ) ) {
> >> isAtTheOffice = true ;
> >> break interfaceEnum ;
> >> }
> >> }
> >> }
> >> } catch (SocketException e) {
> >> e.printStackTrace();
> >> }
> >> ...
> >>
> >> It shows how to loop on all your interfaces and select one
> (according
> >> to its address prefix...).
> >>
> >> That's probably close to what your're after.
> >>
> >> Alain
> >>
> >>
> >> -----Original Message-----
> >> From: Schmidt, Carsten -81.01-
> [mailto:[EMAIL PROTECTED]
> >> Sent: 15 May 2006 16:17
> >> To: [email protected]
> >> Subject: RE: Select the output-network-interface to call an
> >> axis-webservice
> >>
> >> Hi,
> >> did really no one every had a problem like that?
> >> This problem can not be so special, can it?
> >>
> >> But maybe you know another mailinglist or a book, which might be
> able
> >> to help me?
> >>
> >> It is really important for me to find a solution for that, and
> >> meanwhile I ain't got no more idea where to look at.
> >>
> >> Regards,
> >>
> >> Carsten
> >>
> >>>
> >>> Hi everybody,
> >>> maybe this question has already been answered a thousend times,
> but
> >> I
> >>> haven't found anything about it.
> >>> I got a server with a few different network adapters. Each of
> them
> >> with
> >>> a different IP. Now I'm searching for a way to call a webservice
> by
> >>> choosing exacly one of those adapters (which is not the default
> >> one).
> >>>
> >>> How can I do than?
> >>>
> >>> java.net.NetworkInterface shows me what is available, but where
> can
> >> it
> >>> set what to use? org.apache.axis.client.Call?
> >>> org.apache.axis.client.Service?
> >>>
> >>> Can anybody help me?
> >>>
> >>> Carsten
> >>
> >>
> >>
> >
> >
> >
>
> --
> -------------------------------------------------------------------
> GRIDSYSTEMS Rodrigo Ruiz Aguayo
> Parc Bit - Son Espanyol
> 07120 Palma de Mallorca mailto:[EMAIL PROTECTED]
> Baleares - EspaƱa Tel:+34-971435085 Fax:+34-971435082
> http://www.gridsystems.com
> -------------------------------------------------------------------
>
>
> --
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.392 / Virus Database: 268.5.6/339 - Release Date:
> 14/05/2006
>
>