digitalocean 部署 tomcat
终端显示启动成功,但无法访问 tomcat 首页,
关闭时遇到
Feb 17, 2016 1:29:34 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact localhost:8005. Tomcat may not be running.
Feb 17, 2016 1:29:34 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)
不能访问 tomcat 首页了....
同样的设置在本地就可以,
为这事把 VPS 重装了系统,只装了 jdk 和 tomcat,环境变量也配了
有谁遇到过吗?
1
hcymk2 2016-02-17 14:44:43 +08:00
先 ps 看下 tomcat 的那个进程在不在,估计是不在了。
如果在直接 kill ,之后再 startup 。 之后在 vps 上 curl 下 tomcat 的首页。 |
2
hcymk2 2016-02-17 14:47:21 +08:00
还有能贴下启动的日志么?我觉得是没启动成功。
|
3
uxstone OP @hcymk2
uxstone@ux1:~/tomcat/bin$ ./startup.sh Using CATALINA_BASE: /home/uxstone/tomcat Using CATALINA_HOME: /home/uxstone/tomcat Using CATALINA_TMPDIR: /home/uxstone/tomcat/temp Using JRE_HOME: /usr/lib/jvm/jdk1.8.0_73/jre Using CLASSPATH: /home/uxstone/tomcat/bin/bootstrap.jar:/home/uxstone/tomcat/bin/tomcat-juli.jar Tomcat started. |
6
uxstone OP |
8
uxstone OP |
9
kingwrcy 2016-02-17 15:20:56 +08:00
java.net.BindException: Address already in use
8080 被用了吧?换个端口? |
10
hcymk2 2016-02-17 15:22:39 +08:00
@uxstone
["http-nio-8080"] 17-Feb-2016 01:32:35.845 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-8080"] java.net.BindException: Address already in use 看到了 先改下端口吧 ajp 如果不用可以先注释掉。 |
11
uxstone OP |
12
hcymk2 2016-02-17 15:34:11 +08:00
那你看下 vps 上现在有进程在 8080 端口么?
|
14
hcymk2 2016-02-17 15:48:18 +08:00
你远程直接 telnet 你的 vps 的 8080 这可真是怪了。
|
15
uxstone OP @hcymk2
执行./shutdown.sh 不能关闭 tomcat 显示 SEVERE: Could not contact localhost:8005. Tomcat may not be running. 但我看 tomcat 又的确是运行的 |
16
hcymk2 2016-02-17 16:02:11 +08:00
不是的那个只是进程在。但是 Server 都没起起来, Connector 当然没有创建。
所以是访问不了首页的。 你远程 telnet vpsip:8080 有什么结果? |
17
magicsilence 2016-02-17 16:05:02 +08:00
1. 杀进程, kill -9
2. 改端口, 不只是 8080 ,还有其他的。 3. 重启 |
18
uxstone OP @hcymk2
telnet: could not resolve 104.236.174.176:8080/telnet: Name or service not known |
19
hcymk2 2016-02-17 16:10:27 +08:00
错了 是 telnet 104.236.174.176 8080
我可以打开了 |
20
uxstone OP @hcymk2
刚才弄好了,不是端口问题,现在可以访问了 是 jdk 的一个 bug 找到 jdk1.x.x_xx/jre/lib/security/java.security 这个文件 把 securerandom.source 设置成 securerandom.source=file:/dev/./urandom 具体的请参考这篇博客(非本人的博客,只是引用一下): http://blog.csdn.net/njchenyi/article/details/46641141 从百度上搜到的,问题和我一样,想在 digitalocean 上撘 tomcat 失败, 早上 google 到了 /dev/./urandom 但全英文,没看懂. 就略过了 (英文还是很重要的) 我怕有莫名其妙的的端口占用,都把系统重装了, 被这问题倒腾了一天 |
21
hcymk2 2016-02-17 16:26:25 +08:00
|
23
uxstone OP @hcymk2
我仔细想了想,这也不算是 bug, 我在 digitalocean 买的是最低配置的 vps,内存只有 512M 而本机是 8G 内存,阿里云上是 1G 内存都能运行 tomcat 所以唯一有差别的就是内存这块了 这可能是 jvm 根据系统内存在某个方面的设置导致了我不能运行 tomcat |
24
ttw789 2016-02-17 17:27:01 +08:00
同样的問题我遇見過,
也是 digitalocean ; 把進程 kill 掉, 以 root 用户 或 sudo 启動 tomcat 就好了; -- 之前查了好久, 最後忘記在哪看到的了, 好像是 digitalocean 的什么限制之類的原因 |