2011-11-07 50 views
26

Cách cài đặt:Tomcat khởi động, 8080 địa chỉ đã được sử dụng

  • Amazon EC2
  • Tomcat (với chuyển tiếp an toàn để 8443)
  • Apache 2,2

Tôi chạy tắt máy. Tôi không gặp lỗi.

NHƯNG khi tôi cố gắng Runt các startup.sh tôi nhận được lỗi này: lệnh

07-Nov-2011 17:40:40 org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib 
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init 
SEVERE: Error initializing endpoint 
java.net.BindException: Address already in use <null>:8080 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) 
     at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) 
     at org.apache.catalina.connector.Connector.initialize(Connector.java:1022) 
     at org.apache.catalina.core.StandardService.initialize(StandardService.java:703) 
     at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:538) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:562) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Caused by: java.net.BindException: Address already in use 
     at java.net.PlainSocketImpl.socketBind(Native Method) 
     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336) 
     at java.net.ServerSocket.bind(ServerSocket.java:336) 
     at java.net.ServerSocket.<init>(ServerSocket.java:202) 
     at java.net.ServerSocket.<init>(ServerSocket.java:158) 
     at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) 
     ... 12 more 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService initialize 
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8080]] 
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use <null>:8080 
     at org.apache.catalina.connector.Connector.initialize(Connector.java:1024) 
     at org.apache.catalina.core.StandardService.initialize(StandardService.java:703) 
     at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:538) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:562) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8443 
07-Nov-2011 17:40:41 org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 615 ms 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start 

INFO: Starting service Catalina 
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.33 
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor host-manager.xml 
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor manager.xml 
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive test.war 
log4j:WARN No appenders could be found for logger (StackTrace). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
log4j:ERROR Error initializing log4j: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType) 
java.lang.UnsupportedClassVersionError: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:186) 
     at Config.class$(Config.groovy) 
     at Config.$get$$class$grails$plugins$springsecurity$SecurityConfigType(Config.groovy) 
     at Config.run(Config.groovy:116) 
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start 
SEVERE: Context [/test] startup failed due to previous errors 
07-Nov-2011 17:40:43 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: The web application [/test] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive browser.war 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory examples 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory ROOT 
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory docs 
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start 
SEVERE: Error starting endpoint 
java.net.BindException: Address already in use <null>:8080 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) 
     at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565) 
     at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203) 
     at org.apache.catalina.connector.Connector.start(Connector.java:1095) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:540) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.net.BindException: Address already in use 
     at java.net.PlainSocketImpl.socketBind(Native Method) 
     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336) 
     at java.net.ServerSocket.bind(ServerSocket.java:336) 
     at java.net.ServerSocket.<init>(ServerSocket.java:202) 
     at java.net.ServerSocket.<init>(ServerSocket.java:158) 
     at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) 
     ... 12 more 
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardService start 
SEVERE: Failed to start connector [Connector[HTTP/1.1-8080]] 
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Address already in use <null>:8080 
     at org.apache.catalina.connector.Connector.start(Connector.java:1102) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:540) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8443 
07-Nov-2011 17:40:43 org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
07-Nov-2011 17:40:43 org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/120 config=null 
07-Nov-2011 17:40:43 org.apache.catalina.startup.Catalina start 
INFO: Server startup in 2286 ms 
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause 
INFO: Pausing Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause 
INFO: Pausing Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause 
INFO: Pausing Coyote HTTP/1.1 on http-8443 
07-Nov-2011 17:42:15 org.apache.catalina.core.StandardService stop 
INFO: Stopping service Catalina 
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-8080 
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-8443 

Tôi đã thử như netstat -aon | grep 8080 Tôi đã thử ps -efl | grep java và giết chết mà quá trình sử dụng kill <pid> 9pkill java và vân vân. ..

Đây là những gì netstat -aon

Active Internet connections (servers and established) 
Proto Recv-Q Send-Q Local Address    Foreign Address    State  Timer 
tcp  0  0 127.0.0.1:25    0.0.0.0:*     LISTEN  off (0.00/0/0) 
tcp  0  0 0.0.0.0:22     0.0.0.0:*     LISTEN  off (0.00/0/0) 
tcp  0  0 10.226.122.156:22   109.58.56.15:49215   ESTABLISHED keepalive (5354.40/0/0) 
tcp  0  0 :::80      :::*      LISTEN  off (0.00/0/0) 
tcp  0  0 :::22      :::*      LISTEN  off (0.00/0/0) 
udp  0  0 0.0.0.0:68     0.0.0.0:*        off (0.00/0/0) 
udp  0  0 10.226.122.156:123   0.0.0.0:*        off (0.00/0/0) 
udp  0  0 127.0.0.1:123    0.0.0.0:*        off (0.00/0/0) 
udp  0  0 0.0.0.0:123     0.0.0.0:*        off (0.00/0/0) 
udp  0  0 ::1:123      :::*         off (0.00/0/0) 
udp  0  0 fe80::1031:3cff:fe0:123  :::*         off (0.00/0/0) 
udp  0  0 :::123      :::*         off (0.00/0/0) 
Active UNIX domain sockets (servers and established) 
Proto RefCnt Flags  Type  State   I-Node Path 
unix 2  [ ACC ]  STREAM  LISTENING  2337 @/tmp/fam-root- 
unix 2  [ ACC ]  STREAM  LISTENING  409 @/com/ubuntu/upstart 
unix 2  [ ]   DGRAM     644 @/org/kernel/udev/udevd 
unix 8  [ ]   DGRAM     1513 /dev/log 
unix 3  [ ]   STREAM  CONNECTED  38302 
unix 3  [ ]   STREAM  CONNECTED  38301 
unix 2  [ ]   DGRAM     38297 
unix 2  [ ]   DGRAM     22149 
unix 3  [ ]   STREAM  CONNECTED  2340 @/tmp/fam-root- 
unix 3  [ ]   STREAM  CONNECTED  2339 
unix 2  [ ]   DGRAM     1998 
unix 2  [ ]   DGRAM     1918 
unix 2  [ ]   DGRAM     1895 
unix 2  [ ]   DGRAM     1819 
unix 3  [ ]   DGRAM     648 
unix 3  [ ]   DGRAM     647 

Bất kỳ suy nghĩ hay con trỏ?

Trả lời

9

Số cổng được cấu hình trong $ TOMCAT_HOME/conf/server.xml

Nếu cổng 8080 đang sử dụng, thay đổi nó trong file server.xml. Mine trông như thế này trong server.xml

<Connector port="8085" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 
+0

Đã cố gắng thay đổi thành 8181 8383 ... không có hiệu lực! Điều này có vẻ giống như một công việc xung quanh, những gì tôi đang tìm kiếm để làm là chạy trên 8080 không có vấn đề gì. Vấn đề thậm chí không được giải quyết bằng cách khởi động lại! – marko

15

KHÔNG BAO GIỜ giết một quá trình với tín hiệu -9, vì loại này của quá trình tiêu diệt lá nguồn lực hiện nay trong hệ thống, mà chỉ có thể được gỡ bỏ sau khi khởi động lại máy chủ. chỉ sử dụng kill -9 trong trường hợp khẩn cấp. tốt hơn để sử dụng kill -15, vì nó có thể mất một thời gian để dọn dẹp tài nguyên, nhưng bạn sẽ luôn nhận được sự xả sạch thích hợp của toàn bộ tập hợp tài nguyên đó, rằng quá trình đang tiêu thụ. rất có thể, tomcat không hoạt động vì nó đã để lại một số tài nguyên còn lại trong bộ nhớ. Do đó, hãy khởi động lại hoặc thử tìm kiếm sau:

  • thông qua lệnh lsof và grep với tomcat. nó sẽ cho bạn thấy bất cứ điều gì đã tomcat liên kết với nó

lsof | grep tomcat

  • tìm kiếm của bất kỳ tập tin khóa pid trên hệ thống tập tin, để lại bởi tomcat.
  • Cũng cố gắng phát hành:

lsof -i TCP | grep 8080

+0

Tôi đã thử khởi động lại, sự cố không được giải quyết. Tôi đọc về vấn đề này, nó giống như bạn đã nói - tài nguyên có trong bộ nhớ. Nhưng làm thế nào để họ tồn tại một rebooT ?! : S – marko

+0

cố gắng chạy ps -aux | grep java, và tìm kiếm bất kỳ quá trình java chạy lúc khởi động. – Farhan

+0

cảm ơn cho các đề xuất, tôi đã thử ps -efl | grep java (và sự kết hợp tương tự khác) ghi nhận đã làm việc. Cuối cùng tôi đã chấm dứt trường hợp amazon của mình và tạo một cái mới ... – marko

1

Đôi khi servlets phải làm một số lượng đáng kể việc phải đóng cửa, và kết quả là, tomcat có thể mất một thời gian để tắt máy là tốt. Nếu bạn chờ một chút trước khi khởi động lại máy chủ, bạn có thể thấy sự cố đã biến mất. Nếu không, thì có thể ứng dụng web có thể không phản hồi tín hiệu chấm dứt từ JVM, trong trường hợp đó tomcat có thể không tắt đúng cách.

Ngắn câu chuyện ngắn, hãy thử thêm chế độ ngủ vào tập lệnh khởi động lại của bạn hoặc chỉ cần chờ một chút trước khi gọi lại bắt đầu lại.

9

Chỉ cần chạy một lsof có thể không đủ.Tôi đề xuất lệnh này:

sudo lsof -i :8080 

Và sau đó bạn có thể giết bất kỳ quá trình nào đang giữ cổng (có thể là một trường hợp khác của tomcat).

24

Tôi cũng gặp vấn đề tương tự. Đã thử tất cả các tùy chọn được đề xuất trong chuỗi này. Nhưng không giúp được gì. Sau đó, chỉ cần chạy:

ps -awwef | grep tomcat 

và tìm thấy một số quy trình cũ đang chạy. Tôi đã giết nó bằng cách sử dụng (-15 thay vì -9)

sudo kill -15 <tomcat pid from previous command> 

Và lắc! nó đã làm việc. Khởi động lại tomcat mà không có bất kỳ vấn đề.

+0

Điều này đã giúp tôi ,,, Cảm ơn – ashu17188

1

Vấn đề là tomcat có thể không tắt đúng cách. hãy thử thêm một giấc ngủ vào kịch bản khởi động lại của bạn, hoặc đơn giản là chờ một thời gian ngắn trước khi bắt đầu lại tomcat.

+0

Đã thử theo cách đó trở lại khi câu hỏi được đăng, tôi gặp vấn đề tương tự – marko

4

Chỉ để lưu nội dung: Tôi gặp lỗi này (với tư cách là người mới) vì tôi đã khởi động Apache trước khi bắt đầu Tomcat.

Nếu tôi dừng Apache, sau đó khởi động Tomcat và sau đó khởi động Apache, các lỗi biến mất.

2

Sau khi nhập netstat -aon tìm PID cho cổng 8080. Sau đó đi đến trình quản lý tác vụ và tìm Tên hình ảnh cho PID trong tab quy trình. nhấp chuột phải vào Image Name và nhấp vào kết thúc quá trình. Bây giờ nếu bạn khởi động máy chủ nó sẽ hoạt động.

0

ps -awwef | grep tomcat

làm việc cho tôi

tìm thấy một số quy trình cũ chạy. Tôi giết nó bằng cách sử (-15 thay vì -9)

0

Giải pháp tốt nhất là ngừng chạy dụ tomcat sử dụng lệnh sau:

kill $ (ps -aef | grep java | grep apache-tomcat-7.0. 47 | awk '{print $ 2}')

Thay đổi 7.0.47 bằng phiên bản tomcat của bạn. Nó hoạt động tốt và số cổng, tức là 8080, sẽ sớm được phát hành.

2

Tôi cũng đã gặp sự cố này, nhưng trong trường hợp của mình, tôi đã cập nhật ứng dụng của mình trong máy chủ từ ứng dụng trong nguồn địa phương của mình. Tôi đã tìm kiếm chạy các cá thể tomcat với các phương thức khác nhau như được hiển thị ở trên và đã giết tất cả chúng theo sau bằng cách chạy nó nhiều lần, nhưng không sử dụng.

Lý do tại sao tomcat không đúng cách tắt hoặc khởi động là phiên bản JDK của nguồn ứng dụng: Tôi đã xây dựng nó với JDK 1.8, nhưng trong máy chủ của tôi có 1.7. Sau khi xây dựng lại ứng dụng của tôi với JDK 1.7, tôi đã làm việc với cả máy chủ cục bộ và máy chủ. Hy vọng, thông tin này cũng giúp một người như tôi.

0

Tôi đang gặp phải sự cố tương tự và nhận thấy rằng cổng 8080 đang được sử dụng cho một số ứng dụng khác. sử dụng netstat commnad trên cửa sổ và xem tất cả các cổng đang sử dụng.

thay đổi cổng kết nối trong tệp server.xml. bạn có thể tìm thấy tệp này trong thư mục cài đặt tomcat của mình dưới conf thư mục.mở tệp này, tôi nhìn như sau:

<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 

thay đổi giá trị cổng thành một số cổng khác tốt nhất là trong chuỗi 80. hy vọng nó hoạt động.

Các vấn đề liên quan