我需要安装Tomcat并安装两个grails应用程序。
两个应用程序应使用8080如下:
本地主机:8080 / APP1
本地主机:8080 / APP2
我尝试将我的两个war文件放在 webapps 文件夹中,然后上传服务器。
当服务器上传时,我的catalina.out日志文件中出现了这个异常:
2014年4月23日下午1:27:27 org.apache.coyote.AbstractProtocol init
信息:初始化ProtocolHandler [" http-bio-8080"]
2014年4月23日 1:27:27 PM org.apache.coyote.AbstractProtocol init
严重:失败 初始化与ProtocolHandler相关的终点 [" http-bio-8080"]
java.net.BindException:地址已在使用中 :8080
在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:410)
在 org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640)
在 org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
在 org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
在 org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
在 org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
在 org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:813)
在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
在org.apache.catalina.startup.Catalina.load(Catalina.java:638)
在org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(Method.java:606)
在 org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
因此,我需要知道使用两个grails应用程序上传tomcat的最佳做法是什么。
感谢您的帮助。
答案 0 :(得分:0)
这些战争文件是如何生成的?使用grails war
?
我经常在Tomcat上使用Grails应用程序。由于端口8080上没有运行其他服务,因此可能是Tomcat中的某些垃圾导致的问题。因此,避免发现自己浪费时间与Tomcat的内部工作。如果可以(您的示例是使用localhost),快速解决方案可能是尝试全新安装Tomcat。否则,只需尝试清除工作和 temp 目录。
您还询问了最佳做法...如果您可以停止Tomcat,请执行此操作,将.war文件放在 webapps 文件夹中,然后清除工作和 temp 目录,然后重新启动它。否则,只需将.war文件放在webapps文件夹中,或通过Tomcat Manager应用程序(http://localhost:8080/manager
)发送。但是,在重新部署之后,它常见于获取PermGen空间错误。在这种情况下,您唯一的选择是重新启动Tomcat。
作为另一个提示,Tomcat Manager的更好替代方案是PSI Probe(http://code.google.com/p/psi-probe/),它为您的应用程序和Tomcat提供更多信息和控制。