【问题标题】:Exception when I try to run a liferay portlet on my tomcat server当我尝试在我的 tomcat 服务器上运行 liferay portlet 时出现异常
【发布时间】:2017-03-07 07:59:57
【问题描述】:
这是我得到的:
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 8099; nested exception is: java.net.BindException: Address already in use: JVM_Bind.
不得不提的是,我使用liferay 7.0 ga3和tomcat 8.0.32,我的ide是eclipse luna。
我尝试在命令行中运行 start rmiregistry some_port,但它什么也没做,只是弹出一个窗口,实际上什么也没做。
谢谢!
【问题讨论】:
标签:
eclipse
tomcat
liferay
【解决方案1】:
Tomcat 使用端口 8099 进行 JMX 通信(这对于调试至关重要)。已经有另一个进程在使用此端口。以下是一些可能性:
-
一般来说,完成其他过程更实际。 很多次,另一个过程是 Spotify。你在使用 Spotify 吗?如果是这样,只需完成它,启动 Liferay,然后重新打开 Spotify。烦人但直截了当。
-
您启动了另一个 Tomcat 捆绑包。在这种情况下,您只需将其关闭即可。
-
之前的 Liferay 执行刚刚崩溃,并让恶意 Java 进程监听该端口。这种情况下,去终端执行jps:
$ jps
28058 org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
1787 Bootstrap
14207 Jps
杀死标记为Bootstrap的进程:
$ kill -9 1787
-
从技术上讲,您可以更改 Tomcat 上的端口。打开服务器配置,点击“打开启动配置”。然后,转到“参数”选项卡并查找8099。基本上,按照下面的 GIF:
但是,我不知道它的所有后果。我以前是用没有 LDS 的 Tomcat 服务器做的,不知道用 LDS 会带来什么问题。
【解决方案2】:
请检查liferay-dxp-(version)-ga1\tomcat-(version)\conf文件夹下的server.xml文件中是否提到了关机端口。
使用以下命令查找 Windows 机器上运行的端口:
netstat /nao | findstr "80"
然后将关闭端口更改为任何可用端口,例如 8010:
<Server port="8010" shutdown="SHUTDOWN">
重启服务器。
如果关闭端口已被使用,请尝试此步骤。