ไม่สามารถเชื่อมต่อกับ Tomcat แม้ว่าจะทำงานอยู่


9

ฉันพยายามติดตั้ง Apache Tomcat 5.5 และ 6 ใน 2 วิธีที่แตกต่างกัน ( จากแหล่งที่มาและด้วย apt-get ) บน Debian 5 และ Debian 6 - ไม่สำเร็จ เซิร์ฟเวอร์กำลังทำงาน แต่ฉันไม่สามารถเชื่อมต่อได้

netstat -a:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 `hostname`:ssh          my_home_ip:4318      ESTABLISHED
tcp        0     52 `hostname`:ssh          my_home_ip:remctl    ESTABLISHED
tcp6       0      0 [::]:8009               [::]:*                  LISTEN
tcp6       0      0 [::]:8180               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
udp        0      0 *:mdns                  *:*
udp        0      0 *:33059                 *:*
udp6       0      0 [::]:mdns               [::]:*
udp6       0      0 [::]:43829              [::]:*

netstat -tnlp:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1416/sshd
tcp6       0      0 :::8009                 :::*                    LISTEN      7880/jsvc
tcp6       0      0 :::8180                 :::*                    LISTEN      7880/jsvc
tcp6       0      0 :::22                   :::*                    LISTEN      1416/sshd

ps aux | grep tomcat:

root      7878  0.0  0.0   1984   352 ?        Ss   21:55   0:00 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
root      7879  0.0  0.0   1984   460 ?        S    21:55   0:00 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
tomcat55  7880  0.1  5.3 324068 27932 ?        Sl   21:55   0:01 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
root      8013  0.0  0.0   1716   492 pts/0    R+   22:13   0:00 grep tomcat

nmap ตรวจสอบพอร์ต:

# nmap localhost -p 8180
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT     STATE  SERVICE
8180/tcp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 0.025 seconds

# nmap localhost -p 8009
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT     STATE  SERVICE
8009/tcp closed ajp13
Nmap done: 1 IP address (1 host up) scanned in 0.027 seconds

# nmap localhost -p 22
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT   STATE SERVICE
22/tcp open  ssh
Nmap done: 1 IP address (1 host up) scanned in 0.026 seconds

บันทึก Catalina:

Mar 3, 2012 9:55:26 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: 
Mar 3, 2012 9:55:26 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8180
Mar 3, 2012 9:55:26 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 486 ms
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Mar 3, 2012 9:55:27 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8180
Mar 3, 2012 9:55:27 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 3, 2012 9:55:27 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/24  config=null
Mar 3, 2012 9:55:27 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Mar 3, 2012 9:55:27 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 321 ms

java -version:

java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode)

ฉันได้ลองใช้ Tomcat กับ IP ภายนอกของฉันแล้ว ฉันยังได้รับข้อผิดพลาดเกิดขึ้นในระหว่างการเริ่มต้นของ VM ไม่สามารถจองพื้นที่เพียงพอสำหรับวัตถุฮีป เกิดข้อผิดพลาดเป็นครั้งคราว แต่ฉันคิดว่านั่นไม่ใช่ปัญหาเนื่องจาก Tomcat ไม่ตอบสนองต่อไป

ขออภัยด้วยข้อความมากมาย - ฉันพยายามเป็นคนให้ข้อมูล โปรดช่วยฉันด้วย ขอบคุณล่วงหน้า!

ปรับปรุง ตามที่ระบุไว้ในคำตอบ Tomcat กำลังฟังบนพอร์ต IPv6 เพื่อที่จะเปลี่ยนแปลงนั้นฉันต้องเพิ่มตัวแปรสภาพแวดล้อมสำหรับเครื่อง JAVA ไปยัง/etc/profileไฟล์

JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
export JAVA_OPTS

... โหลดไฟล์ซ้ำ: source /etc/profile

... และจากนั้นกำหนดค่าหลักของ Tomcat Connectorโดยแก้ไข/etc/tomcat5.5/server.xml(ในกรณีของฉัน) ด้วยวิธีต่อไปนี้:

<Connector port="8080" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" address="0.0.0.0" />

สังเกตุสิ่งaddress="0.0.0.0"ที่บอกให้ Tomcat เชื่อมโยงกับที่อยู่ IPv4

ขอบคุณสำหรับเวลาและขอให้ทุกคนมีวันที่ดี


พอร์ตแสดงเป็นเปิดเมื่อคุณสแกน::1แทน localhost หรือไม่
Shane Madden

@Shane Madden nmap -6 ::1 -p 8009 PORT STATE SERVICE 8009/tcp open ajp13ขอบคุณสำหรับข้อเสนอแนะของคุณคุณมีสิทธิที่: คุณช่วยโพสต์ข้อความนี้เป็นคำตอบเพื่อที่ฉันจะยอมรับได้ไหม?
aexl

คำตอบ:


4

Tomcat ดูเหมือนว่าจะฟังบนเท่านั้นที่อยู่ IPv6 ::1ย้อนกลับ


1
ขอขอบคุณอีกครั้ง การแก้ไขปัญหาโดยการตั้งค่า$JAVA_OPTSใน/etc/profileค่าของ-Djava.net.preferIPv4Stack=trueและการกำหนดค่า Tomcat address="0.0.0.0"เพื่อฟังบน
aexl

ไม่แน่ใจว่าทำไมฉันไม่ได้อัปเดตสิ่งนี้กลับมาเมื่อฉันยอมรับคำตอบ 6 ปีที่ผ่านมา: /
aexl

1

มันมีกลิ่นเหมือนปัญหาไฟร์วอลล์ - ลองเปิดกฎที่เกี่ยวข้องในไฟร์วอลล์ของคุณ (ลองปล่อยให้ทุกอย่างเข้า / ออกมากกว่าloฉันไม่เคยเห็นกรณีที่ถูกกฎหมายสำหรับการ จำกัด การรับส่งข้อมูลย้อนกลับ)


ขอบคุณสิ่งนี้อาจมีประโยชน์สำหรับคนอื่นที่มีปัญหาในการติดตั้ง Tomcat
aexl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.