Hello guys,

currently I'm trying to set-up a standalone Tomcat 5.5.17 server in an IPv6 
environment on a FreeBSD 6.1 machine. Unfortunately, Tomcat refuses to start. 
Here is the relevant content of the catalina.out log-file:

SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Can't assign requested address
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
        at java.net.ServerSocket.bind(ServerSocket.java:319)
        at java.net.ServerSocket.<init>(ServerSocket.java:185)
        at 
org.apache.catalina.core.StandardServer.await(StandardServer.java:372)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:615)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:575)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

I googled for a solution to this problem, but the only one I found (several 
times) was to disable the IPv6 support of the JVM by calling it with 
-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses. Since I 
explicitely want to use IPv6 this is no solution for me.

Then I looked at the particular portion of the source code which causes the 
exception and I found that the IPv4 address 127.0.0.1 is actually hardcoded 
several times there (in StandardServer.java, Catalina.java and some others). Of 
course, the JVM cannot create an IPv6 address using this IPv4 representation. 
Therefore I changed "127.0.0.1" to "localhost", recompiled Tomcat and happily 
discovered that it is working now.

BUT... since I can read everywhere that Tomcat should be IPv6 compliant, this 
code-change doesn't seem to be the real solution to me. Firtly I'm not the only 
one who is using IPv6 and secondly the developers are definitely not that 
stupid to hardcode an IPv4 address and thereby break IPv6 compatibility. So, 
I'd like to ask you if there is a configuration-only way to solve this issue, 
i.e. to avoid that StandardServer is being called?

I am using the server-minimal.xml file that is being shipped with Tomcat and an 
IPv6 capable JVM 1.5.

Hans
-- 


Echte DSL-Flatrate dauerhaft für 0,- Euro*. Nur noch kurze Zeit!
"Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to