หลายพอร์ต (8005, 8080, 8009) ที่ต้องการโดย Tomcat Server ที่ localhost มีการใช้งานแล้ว


258

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามเรียกใช้โปรแกรม JSP อย่างง่ายใน Tomcat ใน Eclipse

มีหลายพอร์ต (8005, 8080, 8009) ที่ต้องการโดย Tomcat v6.0 เซิร์ฟเวอร์ที่ localhost มีการใช้งานแล้ว เซิร์ฟเวอร์อาจทำงานในกระบวนการอื่นอยู่แล้วหรือกระบวนการระบบอาจใช้พอร์ตอยู่ ในการเริ่มต้นเซิร์ฟเวอร์นี้คุณจะต้องหยุดกระบวนการอื่นหรือเปลี่ยนหมายเลขพอร์ต

มันเกิดจากอะไรและฉันจะแก้มันได้อย่างไร


ฉันมีปัญหาที่คล้ายกันซึ่งกลายเป็นไฟร์วอลล์ windows
James Oravec

อาจมีกระบวนการบางอย่างที่ undead ทำให้ Tomcat ของคุณยังมีชีวิตอยู่ ฆ่ากระบวนการด้วยการค้นหา ID และยกเลิกหรือโดยการรีสตาร์ทเครื่องของคุณ
Felipe Leão

คุณสามารถใช้คำสั่งเหล่านี้เพื่อหยุดบริการ tomcat ที่รันอยู่แล้วจากคอนโซลคำสั่ง netstat -ano | findStr 8080เพื่อค้นหาบริการที่กำลังทำงานอยู่จากนั้นค้นหารหัสกระบวนการและคัดลอก pid และเรียกใช้คำสั่งอีกครั้งในขณะที่taskkill /F /PID pid_number
Mdhar9e

คำตอบ:


473

คุณมีอินสแตนซ์อื่นของ Tomcat ที่ทำงานอยู่แล้ว คุณสามารถยืนยันสิ่งนี้ได้โดยไปที่http://localhost:8080เว็บเบราว์เซอร์ของคุณและตรวจสอบว่าคุณได้รับโฮมเพจเริ่มต้นของ Tomcat หรือหน้าข้อผิดพลาดเฉพาะ 404 ของ Tomcat ทั้งคู่เป็นหลักฐานที่ถูกต้องเท่าเทียมกันว่า Tomcat ทำงานได้ดี หากไม่เป็นเช่นนั้นคุณจะได้รับข้อความแสดงข้อผิดพลาดการหมดเวลาเชื่อมต่อ HTTP ของเบราว์เซอร์

คุณต้องปิดมัน ไปที่/binโฟลเดอร์ย่อยของโฟลเดอร์การติดตั้ง Tomcat และเรียกใช้งานสคริปต์shutdown.bat(Windows) หรือshutdown.sh(Unix) หากไม่ได้ผลให้ปิด Eclipse จากนั้นเปิดตัวจัดการงานและฆ่ากระบวนการทั้งหมดjavaและ / หรือjavawกระบวนการ

หรือถ้าคุณติดตั้งมันเป็นบริการ Windows ด้วยเหตุผลบางประการ (นี่คือเจตนาสำหรับการผลิตและไม่ช่วยเหลือเมื่อคุณเพิ่งพัฒนา) ให้เปิดตัวจัดการบริการ ( เริ่ม> เรียกใช้> บริการ> บริการ msc ) และหยุดบริการ Tomcat หากจำเป็นให้ถอนการติดตั้งบริการ Windows โดยสิ้นเชิง สำหรับการพัฒนาเพียงแค่ไฟล์ ZIP ก็เพียงพอแล้ว

หรือถ้าเจตนาที่แท้จริงของคุณคือการเรียกใช้ Tomcat สองอินสแตนซ์พร้อมกันคุณต้องกำหนดค่าอินสแตนซ์ที่สองเพื่อฟังพอร์ตต่าง ๆ ศึกษาเอกสารของ Tomcat สำหรับรายละเอียดเพิ่มเติม


1
สมบูรณ์แบบนี้ได้รบกวนฉันตลอดไป ฉันเรียกใช้งานsh shutdown.shในเทอร์มินัลภายในไดเรกทอรี / bin
Danny Englander

2
สวัสดี BalusC ฉันชอบคุณ! ไม่มีshutdown.batอยู่ในโฟลเดอร์ถังขยะของฉัน Tomcat ได้รับการติดตั้งเป็นบริการและไม่เป็น zip การหยุดบริการ Tomcat ในบริการต่างๆช่วยแก้ไขปัญหา ขอบคุณ Chenqui
Erran Morad

1
@ Borat: ไม่เป็นไร โปรดทราบว่าคุณควรถอนการติดตั้งบริการและรับ zip แทน
BalusC

6
"kill กระบวนการ java และ / หรือกระบวนการ javaw ทั้งหมด" ใช้ได้สำหรับฉันขอบคุณ
Thariq Nugrohotomo

3
การเปิดsystem monitorหรือtask managerฆ่ากระบวนการ java ที่ใช้งานabout 400 MBหรือมากกว่าRAMนั้นจะช่วยแก้ปัญหาได้เช่นกัน เป็นการจองกระบวนการโดยไม่รู้ตัว
viper

55
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • ไม่จำเป็นต้องรีสตาร์ท Eclipse
  • หากคุณได้รับข้อผิดพลาดด้านบนเพียงแค่ป้อนบรรทัดนี้ในเทอร์มินัล
  • เริ่มต้น Tomcat อีกครั้งใน Eclipse
  • ใช้งานได้เฉพาะในระบบที่ใช้ Linux (Ubuntu .. เป็นต้น)

6
นี้จะดีกว่าkill $(ps -aef | grep java | grep apache | awk '{print $2}')
firesofmay

สิ่งนี้ไม่ได้ผลสำหรับฉัน (มิ้นต์ 17.1) มันให้ความช่วยเหลือสำหรับkillคำสั่งแก่ฉัน
Deleet

สิ่งนี้ใช้ได้สำหรับฉัน อย่างไรก็ตามฉันอยากรู้ว่าฉันมี 2 อินสแตนซ์ที่ทำงานอยู่หรือไม่และฉันต้องบังคับให้หยุดหนึ่งอันด้วยวิธีนี้ฉันจะทราบได้อย่างไรว่าจะปิดตัวไหน ขอบคุณ
Gautam

29

หากคุณกำลังทำงานบน windows ลองสิ่งนี้ในพร้อมท์บรรทัดคำสั่ง:

netstat -ano

สิ่งนี้จะแสดงพอร์ตทั้งหมดที่ใช้งานอยู่และรหัสกระบวนการ PID # ของกระบวนการที่กำลังใช้พอร์ตนั้น จากนั้นCtrl+ Alt+ Delและเปิดตัวจัดการงานเพื่อดูว่ากระบวนการใดที่

จากนั้นคุณสามารถเลือกเพื่อปิด / หยุดหรือกำหนดค่าเซิร์ฟเวอร์ของคุณเพื่อใช้พอร์ตอื่น ในการตรวจสอบว่าพอร์ตเลือกใหม่ (สมมติว่า 8010) มีให้ทำหรือไม่ให้ทำดังนี้:

netstat -ano | grep 8010

ถ้ามันไม่ส่งคืนบรรทัดใด ๆ แสดงว่าคุณไม่เป็นไร

ในการเปลี่ยนพอร์ตไปที่มุมมองเซิร์ฟเวอร์ให้เปิดserver.xmlและเปลี่ยนพอร์ตที่นั่น ของฉันมีรายการนี้:

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"

โปรดดูคำตอบใหม่ของฉันซึ่งฉันมีสคริปต์ PowerShell เพื่อทำสิ่งนี้โดยอัตโนมัติโดยไม่ต้องให้คุณเปิดตัวจัดการงาน
Xharlie

1
findstrสำหรับผู้ที่ไม่มี grep
eckes

25

หากคุณอยู่ในสภาพแวดล้อม Mac นี่คือสิ่งที่ฉันทำ

ค้นหา id กระบวนการที่ทำงานบนพอร์ตนี้จากเทอร์มินัลเช่น 8080:

lsof -i :8080

และฆ่ามัน:

kill -9 <PID>  

ตัวอย่าง:

คุณอาจเห็นผลลัพธ์ต่อไปนี้:

MacSys:bin krunal.$ lsof -i :8080

COMMAND   PID     USER   FD   TYPE     DEVICE  SIZE/OFF   NODE  NAME
java     21347   krunal  52u  IPv6      XXX      0t0      TCP  *:http-xxx (LISTEN)

และฆ่ามัน: ( kill -9 21347)


20

ขั้นตอนในการเพิ่มพอร์ตซึ่งใช้เพื่อเรียกใช้เซิร์ฟเวอร์ Tomcat ใน Eclipse

ตัวอย่างเช่นสมมติว่ามีการใช้พอร์ต 8080 เราจำเป็นต้องทำให้ฟรี 8080 เพื่อเรียกใช้โพง

ขั้นตอนที่ 1:

C: \ Users \ ชื่อผู้ใช้> netstat -o -n -a | findstr 0.0: 8080

TCP 0.0.0.0:3000 0.0.0.0+ ฟัง 3116

ตอนนี้เราจะเห็นว่าพอร์ต LISTENING คือ 3116 สำหรับ 8080

เราต้องสังหาร 3116 เดี๋ยวนี้

ขั้นตอนที่ 2:-

C: \ Users \ ชื่อผู้ใช้> taskkill / F / PID 3116

ขั้นตอนที่ 3: ไปที่ Eclipse และเริ่ม Server มันจะทำงาน


14

หากคุณใช้ Eclipse จากนั้นดับเบิลคลิกที่เซิร์ฟเวอร์และดับเบิลคลิกที่เซิร์ฟเวอร์ Tomcat จากนั้นหนึ่งไฟล์จะเปิด ในไฟล์นั้นเปลี่ยนพอร์ต HTTP เป็นหมายเลขพอร์ตอื่นและบันทึก ( Ctrl+ S) จากนั้นเริ่มเซิร์ฟเวอร์อีกครั้ง


สิ่งนี้ใช้ได้สำหรับฉันในขณะที่โซลูชันอื่นไม่ได้ ฉันใช้มิ้นต์ 17.1 ฉันต้องติดตั้ง tomcat ทั้งผ่าน Eclipse และผ่าน apt-get เพราะฉันไม่พบโฟลเดอร์ที่ติดตั้ง apt-get นั่นก็เป็นเหตุผลว่าทำไมฉันถึงมีสอง ถึงกระนั้นฉันไม่สามารถปิดตัวแรกด้วยคำสั่ง kill ได้
Deleet

12

ถ้า Eclipse พูดว่า

มีหลายพอร์ต (8005, 8080, 8009) ที่ต้องการโดย Tomcat v6.0 เซิร์ฟเวอร์ที่ localhost มีการใช้งานแล้ว

ข้อผิดพลาดนี้เกิดขึ้นเพราะ Tomcat อาจทำงานในพื้นหลังดังนั้นก่อนอื่นให้หยุดเซิร์ฟเวอร์

ทางออกคือ:

  1. เปิดมุมมอง "คอนโซล" (หน้าต่าง -> แสดงมุมมอง -> คอนโซล)
  2. จากนั้นหยุดเซิร์ฟเวอร์ Tomcat
  3. จากนั้นเปิดมุมมอง "เซิร์ฟเวอร์" และเริ่มทำงานเซิร์ฟเวอร์

ขอบคุณ!


สิ่งนี้ใช้ได้สำหรับฉัน ฉันลองแล้วเท่านั้น: หยุดบริการแมวตัวผู้ sudo
Emiliano Sangoi

10

ฉันไม่มีอินสแตนซ์อื่นของ Tomcat ที่ใช้โฆษณาไม่มีกระบวนการอื่นโดยใช้ "พอร์ต Tomcat" (ในกรณีของฉันคือพอร์ต 8088) Eclipse ส่งข้อความเดียวกันเมื่อเริ่มต้น Tomcat:

.... เซิร์ฟเวอร์อาจทำงานในกระบวนการอื่นอยู่แล้วหรือกระบวนการระบบอาจใช้พอร์ตอยู่ ในการเริ่มต้นเซิร์ฟเวอร์นี้คุณจะต้องหยุดกระบวนการอื่นหรือเปลี่ยนหมายเลขพอร์ต

ฉันแก้ปัญหาด้วยวิธีนี้:

  • ไปที่ bin of tomcat โดยทันที
  • เปิดตัว startup.bat
  • เรียกใช้ shutdown.bat
  • เริ่มต้น Tomcat โดย Eclipse

1
ปัญหาของฉันคือพอร์ต 8005 และ 8009 ไม่ว่าง แต่พอร์ต 8080 นั้นว่างและไม่มีการติดตั้งโพงตัวนั้นทำงานในเวลานั้น ทางออกของคุณช่วยฉันแก้ไขปัญหานี้ขอบคุณ
Benas

7

สิ่งที่ฉันทำหลังจากอ่านคำตอบที่แนะนำทั้งหมดและเนื่องจากฉันรู้ว่าพอร์ตของฉันถูกใช้งานแล้ว ฉันคลิกสองครั้งบน Tomcat ใต้แท็บเซิร์ฟเวอร์ใน eclipse และเปิดข้อมูลภาพรวมแล้วค้นหาข้อมูลพอร์ต เพิ่งเปลี่ยนพอร์ตที่ขัดแย้งเนื่องจากเหมืองเป็นพอร์ต 8009 (กล่าวถึงข้อผิดพลาดระหว่างการเริ่มต้นเซิร์ฟเวอร์) ฉันเปลี่ยนเป็น 8008 และใช้งานได้ดี ลองดูว่าพอร์ตที่เปลี่ยนแปลงจะไม่ใช้งานเซิร์ฟเวอร์จะเริ่มทำงานหรือไม่


6

ขั้นตอนที่ 1: netstat -a -o -nและจะแสดงรายการเครือข่ายค้นหาที่อยู่ในพื้นที่เช่น 127.0.0.1:8080 และบันทึก PID (eq 3624)

C:\>netstat -a -o -n

ขั้นที่ 2: taskkill / F / PID 3624 เรียกใช้คำสั่งนี้เพื่อฆ่ากระบวนการนั้น

C:\>taskkill /F /PID 3624

ลิงก์ไปยังโพสต์


โปรดดูคำตอบใหม่ของฉันซึ่งฉันมีสคริปต์ PowerShell เพื่อทำให้ทั้งสองบรรทัดเป็นแบบอัตโนมัติ
Xharlie

5

บน Windows ใช้คำสั่งสำหรับหยุดอินสแตนซ์ tomcat ที่รันอยู่แล้วและลองรันอีกครั้งใน eclipse มันอาจทำงานได้

net stop tomcat7 

หรือคุณสามารถเปลี่ยนพอร์ตใน XML ของเซิร์ฟเวอร์หากคุณต้องการเรียกใช้บนพอร์ตอื่น ๆ


4

วิธีง่ายๆในการแก้ปัญหาของคุณ:

เซิร์ฟเวอร์อาจทำงานในกระบวนการอื่นอยู่แล้วหรือกระบวนการระบบอาจใช้พอร์ตอยู่ เพื่อที่จะฆ่าพอร์ตนั้นให้ทำดังต่อไปนี้:

1) ดาวน์โหลดTCPView (เพียง 285kb)จากลิงค์ต่อไปนี้

http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

2) แตกโฟลเดอร์แล้วเริ่มแอปพลิเคชั่นTCPView

3) คลิกขวาที่java.exe (เพราะ 8009,8005 พอร์ตที่ใช้กันทั่วไปโดยกระบวนการ Java) และเลือกกระบวนการสิ้นสุดตัวเลือก

นี่จะหยุดกระบวนการอื่นได้อย่างง่ายดาย ..

หมายเหตุ : การเรียกใช้TOMCATPATH ​​/ bin / shutdown.batอาจไม่ปิดเครื่อง Tomcat เมื่อมันมีเธรดปีศาจหรือเธรดที่ไม่มีการจัดการ ในกรณีเช่นนี้TCPViewทำงานได้ดีโดยไม่มีปัญหาใด ๆ


2

หากคุณอยู่ใน Java EE ที่คาดหวังใน Eclipse และพยายามเริ่มต้นเซิร์ฟเวอร์ Tomcat ใน Eclipse ในโหมดดีบักคุณจะได้รับข้อผิดพลาดดังกล่าว คุณต้องเปลี่ยนเป็นดีบั๊กใน Eclipse ฉันแก้ไขปัญหาแบบนี้แล้ว


2

บางครั้งหากพอร์ตไม่ได้เป็นอิสระแม้หลังจากพยายามปิดระบบตามที่ @BalusC แนะนำคุณสามารถฆ่ากระบวนการ javaw ทำตามขั้นตอนต่อไปนี้:

  1. คลิกที่เมนู Start แล้วเปิด "Windows powershell"
  2. คลิกขวาก่อนเปิดและเลือก "Run as administrator"
  3. ป้อนคำสั่ง ps คุณอาจเห็นภาพดังต่อไปนี้: Powershell แสดงกำลังทำงานอยู่ในปัจจุบัน

  4. ดูหมายเลขกระบวนการของกระบวนการ "javaw" หมายเลขกระบวนการเป็นหมายเลขที่ถูกที่สุดในคอลัมน์ฉันได้เน้นในหมายเลขกระบวนการรูปภาพของ javaw เช่น

  5. ป้อนคำสั่ง kill javaw ถูกฆ่าตายและตอนนี้คุณต้องสามารถเรียกใช้โปรแกรมได้


1
โปรดดูคำตอบใหม่ของฉันซึ่งฉันมีสคริปต์ PowerShell เพื่อทำสิ่งนี้โดยอัตโนมัติ
Xharlie

2

นี่คืออีกหนึ่งตัวเลือกที่จะลองหากไม่มีความพยายามด้านบนช่วย คุณอาจใช้ Eclipse จากไดรฟ์ที่ใช้ร่วมกัน (สำหรับเช่น H หากเป็นเช่นนั้นให้ย้าย / คัดลอกไดเร็กทอรี Eclipse ทั้งหมดไปที่ C: แล้วลองอีกครั้ง

Eclipse ของฉันไม่สามารถเปิดพอร์ตสำหรับเซิร์ฟเวอร์ Tomcat (ด้วยข้อผิดพลาดด้านบน) หรือแม้แต่เชื่อมต่อกับอินเทอร์เน็ต ฉันยังลองปลั๊กอิน Tomcat อื่น (Sysdeo) ซึ่งไม่สามารถเปิดพอร์ตได้เช่นกัน

นี่เป็นตัวเลือกที่ฉันได้ลอง:

ตรวจสอบและฆ่าอินสแตนซ์ Tomcat อื่น ๆ

  • ในพร้อมท์คำสั่งnetstat -anoและตรวจสอบว่ากระบวนการอื่นใดกำลังใช้พอร์ตที่ขัดแย้งกัน
  • ค้นหา PID และฆ่ามัน
  • ลองเริ่มต้นเซิร์ฟเวอร์อีกครั้ง

เปลี่ยน Tomcat Ports ใน Eclipse

  • ในแท็บเซิร์ฟเวอร์ Eclipse ดับเบิลคลิกที่อินสแตนซ์ Tomcat นี่จะเปิดแท็บการกำหนดค่า
  • ภายใต้พอร์ตเปลี่ยนหมายเลขพอร์ต (เช่น 18080)

ฆ่า java.exe และ javaw

ดูคำตอบอื่น ๆ ของฉันสำหรับ Eclipse ที่ไม่ได้เชื่อมต่อกับอินเทอร์เน็ต ( https://stackoverflow.com/a/37246087/4212710 )


2

สำหรับผู้ใช้ windows:

ไปที่ Task Manager โดยตรงด้วยการกดแป้น CTRL + SHIFT + ESC

ทำลายกระบวนการ "java.exe" โดยคลิกขวาและเลือก "End Task"


2

ฉันจะตรวจสอบคำตอบทั้งหมด informing only to kill PIDแต่

ในกรณีที่คุณได้เข้า terminal ที่ใช้ร่วมกันโดยทั้งหมดก็จะไม่ช่วยเหลือหรือบางทีคุณอาจไม่ได้รับอนุญาตให้ฆ่า PID

ในกรณีนี้สิ่งที่คุณสามารถทำได้คือ:

Double click on server

Go to Overview and change ports in Ports แบบนี้:

ป้อนคำอธิบายรูปภาพที่นี่


1

การแก้ไขที่ง่ายกว่าสำหรับฉันคือการลบ webapps ที่ปรับใช้ปัจจุบันของฉันจาก Tomcat ผ่านแท็บ "เซิร์ฟเวอร์" เมื่อฉันลบพวกเขาปัญหาจะหายไป เพียงปรับใช้โครงการของคุณอีกครั้งโดยดำเนินการตาม Run> Run on Server


1

ปัญหามักจะเกิดขึ้นเมื่อ Apache Tomcat ล้มเหลวในการยกเลิกอย่างถูกต้องแม้ว่าจะมีการส่งคำสั่งปิดระบบ ในกรณีของฉันใช้ Tomcat 8 สิ่งนี้เกิดขึ้นกับระเบียบที่น่ารำคาญ โชคดีที่คุณสามารถใช้ Windows PowerShell และnetstatคำสั่งเพื่อสร้างสคริปต์อย่างง่ายเพื่อฆ่ากระบวนการ

สคริปต์ PowerShell ต่อไปนี้จะวิเคราะห์ผลลัพธ์จากnetstatการค้นหากระบวนการใด ๆ ที่กำลังฟังอยู่127.0.0.1:8005ดึงข้อมูล PID ออกแล้วฆ่ากระบวนการนั้น:

netstat -a -o -n `
 | select -skip 4 `
 | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
 | ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
 | % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }

หากคุณserver.xmlกำหนดค่า Tomcat ให้ใช้พอร์ตอื่นหรือ IP ให้แก้ไขนิพจน์ปกติบนบรรทัดที่สี่ของสคริปต์ตามลำดับ

ในที่สุดฉันควรชี้ให้เห็นว่าสถานการณ์ดีขึ้นบน Linux เพราะคุณสามารถสั่งให้ Tomcat บันทึก PID ลงในไฟล์ในเวลาเริ่มต้นและใช้สวิตช์เพื่อบังคับให้ปิดระบบในภายหลัง - สคริปต์การปิดระบบของ 'nix ความสามารถในการฆ่ากระบวนการและnetstatไม่จำเป็นต้องใช้กับนักสืบ


1

หากปัญหาดังกล่าวเกิดขึ้นในระบบปฏิบัติการที่ใช้ Windows 7 หรือ 10 ปัญหาจะเกิดขึ้นเนื่องจาก Tomcat กำลังทำงานเป็น Windows Service หากต้องการหยุด Tomcat ที่ทำงานเป็น Windows Services ให้เปิด Windows Control Panel ค้นหาบริการ "Apache Tomcat" และหยุดมัน อีกวิธีหนึ่งคือการฆ่ากระบวนการทำงานบนพอร์ต 8080 โดยใช้ cmd

เปิด cmd ที่ทำงานเป็นผู้ดูแลระบบ

  1. C: \ users \ ชื่อผู้ใช้> netstat -o -n -a | findstr 0.0: 8080
  2. TCP 0.0.0.0:8080 0.0.0.0+ ฟัง 2160
  3. 2160 ข้างต้นเป็นรหัสกระบวนการของกระบวนการที่ทำงานบนพอร์ต 8080 และฆ่ากระบวนการนั้นโดยใช้คำสั่งต่อไปนี้
    C: \ users \ ชื่อผู้ใช้> taskkill / F / PID 2160
  4. ไปที่ IDE และเริ่มเซิร์ฟเวอร์มันจะทำงาน

1

อาจเป็นเพราะคุณไม่ได้หยุดให้บริการโพงไว้อย่างถูกต้อง ในการดำเนินการดังกล่าวให้เปิดตัวจัดการงานของคุณที่นั่นเพื่อดูjavaw.exeบริการ หยุดบริการก่อน ตอนนี้รีสตาร์ท Tomcat ของคุณทำงานได้ดี


1

ในกรณีของฉันมันทำให้ฉันข้อผิดพลาด: พอร์ต 8005 ที่จำเป็นโดยเซิร์ฟเวอร์ Tomcat v8.0 ที่ localhost มีการใช้งานแล้ว

ฉันเปลี่ยนพอร์ต 8005 ใน apache-tomcat-8.0.39 \ conf \ server.xml แต่การเปลี่ยนแปลงไม่ได้รับการสะท้อน จากนั้นฉันก็ทำการเปลี่ยนแปลงเหล่านี้จาก eclipse โดยดับเบิลคลิกเซิร์ฟเวอร์และแก้ไขพอร์ตจาก 8005 เป็น 8006 และใช้งานได้ ป้อนคำอธิบายรูปภาพที่นี่

ก่อนที่จะวาง 8006 ฉันตรวจสอบใน windows shell ถ้าพอร์ตนี้สามารถใช้ได้หรือไม่ โดยดำเนินการคำสั่งต่อไปนี้:

netstat -a -o -n | findstr 8006

1

ฉันประสบปัญหาเดียวกันและหลังจากค้นหาคำตอบตามที่แสดงด้านล่าง: 1. เปิดมอนิเตอร์ Tomcat ดังแสดงด้านล่าง: ป้อนคำอธิบายรูปภาพที่นี่

  1. เพียงกดหยุดตามที่แสดงในภาพด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

ในที่สุดมันก็ทำงานกับฉันหลังจากการทดลองและการแก้ปัญหาที่แนะนำหลายอย่าง

ด้วยความเคารพ Kerelos Mikhail


0

บน Eclipse ทำการลบดิบของโฟลเดอร์การกำหนดค่า Tomcat ภายใต้โครงการ "เซิร์ฟเวอร์" ฉันลองเป็นความหวังสุดท้ายและใช้งานได้


0

ในกรณีของ windows ฉันพบสิ่งใหม่ ... การหยุด tomcat จาก / bin โฟลเดอร์จะไม่ปล่อยพอร์ต 8080 ในทันทีใช้เวลาประมาณ 5-10 นาทีในการปล่อยพอร์ต หลังจากผ่านไปอีก 10 นาทีถ้าฉันพยายามเรียกใช้โครงการของฉัน Run-> Run บนเซิร์ฟเวอร์ .. มันอนุญาตให้ทำงานได้

ฉันไม่แน่ใจว่าความเข้าใจของฉันถูกต้องหรือไม่!


0

อ้างถึงบล็อกต่อไปนี้ "วิธีการฆ่า tomcat โดยไม่ต้องรีสตาร์ทคอมพิวเตอร์"

http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html

หวังว่าสิ่งนี้จะช่วยให้ใครบางคนในอนาคต


1
ลิงค์ด้านบนเสียชีวิต หนึ่งในนี้ชี้ไปที่บทความบล็อกที่ดี: stanicblog.blogspot.fr/2012/01/…
dounyy

กรุณาอย่าเพิ่มลิงค์เพื่ออ่านโดยไม่พูดถึงส่วนที่สำคัญ เพราะผู้คนอยู่ที่นี่เพื่อรับคำตอบ
Menuka Ishan

0

มันเกิดขึ้นเมื่อคนอื่นในโครงการใช้หมายเลขพอร์ตเดียวกันกับที่คุณใช้! ดับเบิลคลิกเซิร์ฟเวอร์ tomcat เปลี่ยนหมายเลขพอร์ตเป็น 8585 หรืออะไรก็ได้ รหัสจะเริ่มทำงานทันที!


0

วิธีการฆ่าบริการ windows โดยใช้ PID -

  1. พร้อมรับคำสั่งเปิดและพิมพ์ netstat -ano
  2. ค้นหา PID ของพอร์ตที่ใช้งานอยู่ในกรณีนี้จะเป็น 8080, 8005,8009 สมมุติว่า PID ของพอร์ตเหล่านี้คือ 5760
  3. ตอนนี้พิมพ์ taskkill /f /pid 5760
  4. มันจะปิด PID และพอร์ตจะพร้อมใช้งาน ตอนนี้คุณสามารถเริ่มต้น Tomcat ได้ตามปกติโดยบริการ Windows หรือ eclipse เอง

ขอบคุณ

ฆ่าบริการ Windows ที่หยุดหรือเริ่มทำงาน


0

หลายพอร์ต (8005, 8080, 8009) ที่ต้องการโดย Tomcat vX.X Server ที่ localhost มีการใช้งานแล้ว

ในการตรวจสอบว่าอินสแตนซ์อื่นของ Tomcat ทำงานอยู่แล้วหรือกระบวนการอื่นกำลังใช้พอร์ตที่คุณสามารถใช้ได้:

netstat -b -aในพร้อมท์คำสั่งสำหรับ windows รายการนี้จะแสดงรายการพอร์ตที่ใช้งานและช่วยให้คุณสามารถเรียกใช้งานโปรแกรมที่ใช้งานได้ คุณต้องอยู่ในกลุ่มผู้ดูแลเพื่อทำสิ่งนี้

คุณอาจได้รับสิ่งนี้:

TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

เปิดตัวจัดการงานCtrl+ Shift+ Escและฆ่าTomcat7.exeหรือกระบวนการอื่น ๆ โดยใช้พอร์ตเหล่านี้


โปรดดูคำตอบใหม่ของฉันซึ่งฉันมีสคริปต์ PowerShell เพื่อทำสิ่งนี้โดยอัตโนมัติ
Xharlie

0

Tomcat ของคุณอาจทำงานอยู่แล้ว นั่นเป็นสาเหตุที่คุณมีข้อผิดพลาด ฉันเคยมีปัญหาเดียวกันมาก่อน ฉันแก้มันง่ายมาก:

  1. รีสตาร์ทคอมพิวเตอร์ของคุณ
  2. เปิด Eclipse
  3. เรียกใช้ Tomcat ของคุณ

นั่นคือทั้งหมดที่

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