วันพฤหัสบดีที่ 15 มกราคม พ.ศ. 2552

Can't start Tomcat after install VMware server.

Today (It is not real and I'm lazy to update my blog ==") I'm astonished at why i cannot start Tomcat.
Previously, I offen use Jetty to run my web application because It is fast and has great Maven plugin integreated.
This is exception.
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Address already in use
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.(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
at org.apache.catalina.startup.Catalina.await(Catalina.java:630)
at org.apache.catalina.startup.Catalina.start(Catalina.java:590)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

I knew port 8009 and 8005 is used by another process but i don't know what process use.
Then I searched for process using this port.

sudo netstat -p -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:902 *:* LISTEN 6325/vmware-authdla
tcp 0 0 *:8333 *:* LISTEN 6466/vmware-hostd
tcp 0 0 localhost:8307 *:* LISTEN 6466/vmware-hostd
tcp 0 0 localhost:ipp *:* LISTEN 5069/cupsd
tcp 0 0 localhost:62168 *:* LISTEN 7621/wish8.5
tcp 0 0 *:8222 *:* LISTEN 6466/vmware-hostd
tcp6 0 0 localhost:6880 [::]:* LISTEN 8861/java
tcp6 0 0 localhost:8005 [::]:* LISTEN 6322/webAccess
tcp6 0 0 [::]:22214 [::]:* LISTEN 8861/java
tcp6 0 0 [::]:8008 [::]:* LISTEN 8861/java
tcp6 0 0 [::]:netbios-ssn [::]:* LISTEN 5387/smbd
tcp6 0 0 localhost:45100 [::]:* LISTEN 8861/java
tcp6 0 0 [::]:8009 [::]:* LISTEN 6322/webAccess
tcp6 0 0 [::]:47698 [::]:* LISTEN 8861/java
tcp6 0 0 [::]:8308 [::]:* LISTEN 6322/webAccess
tcp6 0 0 [::]:microsoft-ds [::]:* LISTEN 5387/smbd


Then I used ps command to find what webAccess is?

ps -ef | grep webAccess
root 6312 1 0 19:30 ? 00:00:00 /bin/sh /usr/bin/vmware-watchdog -s webAccess -u 30 -q 5 /usr/lib/vmware/webAccess/java/jre1.5.0_15/bin/webAccess -client -Xmx64m -XX:MinHeapFreeRatio=30 -XX:MaxHeapFreeRatio=30 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/common/endorsed -classpath /usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/bin/bootstrap.jar:/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/bin/commons-logging-api.jar -Dcatalina.base=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16 -Dcatalina.home=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16 -Djava.io.tmpdir=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/temp org.apache.catalina.startup.Bootstrap start
root 6322 6312 0 19:30 ? 00:00:10 /usr/lib/vmware/webAccess/java/jre1.5.0_15/bin/webAccess -client -Xmx64m -XX:MinHeapFreeRatio=30 -XX:MaxHeapFreeRatio=30 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/common/endorsed -classpath /usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/bin/bootstrap.jar:/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/bin/commons-logging-api.jar -Dcatalina.base=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16 -Dcatalina.home=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16 -Djava.io.tmpdir=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/temp org.apache.catalina.startup.Bootstrap start


I got VMware using Tomcat to run webAccess.
I chose to change Tomcat ports of VMware. I prefer this approach because I do not change other Tomcat ports again. (yes, It includes JBoss too)

To change Tomcat ports.
1 edit server.xml at /usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/conf/server.xml.
2 change file mode to writeable.
sudo chmod a+w server.xml

3 find and change 8009 and 8005 ports to others.
4 save and change file mode to old mode.
sudo chmod a-w server.xml

5 restart service or reboot you OS.

ไม่มีความคิดเห็น:

แสดงความคิดเห็น