users@jax-rpc.java.net

HTTP transport error: java.net.UnknownHostException

From: Potter, Brian L <brian.potter_at_intergraph.com>
Date: Fri, 1 Oct 2004 12:28:18 -0500

i've used J2EE 1.4 sdk to write a JAXRPC web service based on the
dynamicproxy example in the J2EE 1.4 tutorial. it works great on my
development machines, but when my customer deploys the service and makes a
request, the client crashes with:
 
HTTP transport error: java.net.UnknownHostException: JohnDoe
 at
com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.j
ava:101)
 at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:69)
 at
com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
 at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:446)
 at
com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandle
r.java:99)
 at
com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandle
r.java:71)
 at $Proxy0.login(Unknown Source)

apparently the request is sent using the hostname (JohnDoe) instead of the
IP address (which is what i used in the WSDL URL when i created the proxy).
the client can ping the server using the IP address, but not using JohnDoe
(for some network configuration reason i'm not entirely clear on).
 
my question is: why is the request sent to the server by hostname instead of
IP address?
 
i found this after doing a google search on my error at
http://java.sun.com/j2se/1.3/docs/guide/rmi/faq.html#netcontact
<http://java.sun.com/j2se/1.3/docs/guide/rmi/faq.html#netcontact> :
 
If your RMI application throws an UnknownHostException, you can look at the
resulting stack trace to see if the hostname that the client is using to
contact its remote server is incorrect or not fully-qualified. If necessary,
you can set the java.rmi.server.hostname property on the server to the
correct IP address or hostname of the server machine and RMI will use this
property's value to generate remote references to the server.
 
but i don't know where i can set the hostname property in my server code,
since it's not executed until after the request is made.
 
btw, my development machines are running windows XP and NT, my customer is
strictly NT.

Brian L. Potter
Software Scientist
Solutions Group
Intergraph Corporation (NASDAQ:INGR)
170 Graphics Drive, Madison, AL 35758
P 1.256.730.8219 F 1.256.730.7514
brian.potter_at_intergraph.com < mailto:brian.potter_at_intergraph.com
<mailto:brian.potter_at_intergraph.com> >, www.intergraph.com