当我使用Netbeans运行我的Java项目时,我收到以下错误:
Deployment error:
Starting of Tomcat failed, the server port 8080 is already in use.
See the server log for details.
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:166)
at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:104)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor619.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:277)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:460)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
Caused by: org.netbeans.modules.j2ee.deployment.impl.ServerException: Starting of Tomcat failed, the server port 8080 is already in use.
at org.netbeans.modules.j2ee.deployment.impl.ServerInstance._start(ServerInstance.java:1297)
at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.java:1251)
at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.java:1062)
at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.start(ServerInstance.java:939)
at org.netbeans.modules.j2ee.deployment.impl.TargetServer.startTargets(TargetServer.java:428)
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:143)
... 16 more
BUILD FAILED (total time: 4 seconds)
我尝试将服务器端口更改为8081并关闭工具 - >服务器端口。它运行正常,但如果我执行任何操作并运行项目,它会显示“部署错误:Tomcat启动失败,服务器端口8081已在使用”
会出现什么问题?
答案 0 :(得分:101)
转到命令提示符
netstat -aon
for linux
netstat -tulpn | grep 'your_port_number'
它会显示类似
的内容 TCP 192.1.200.48:2053 24.43.246.60:443 ESTABLISHED 248
TCP 192.1.200.48:2055 24.43.246.60:443 ESTABLISHED 248
TCP 192.1.200.48:2126 213.146.189.201:12350 ESTABLISHED 1308
TCP 192.1.200.48:3918 192.1.200.2:8073 ESTABLISHED 1504
TCP 192.1.200.48:3975 192.1.200.11:49892 TIME_WAIT 0
TCP 192.1.200.48:3976 192.1.200.11:49892 TIME_WAIT 0
TCP 192.1.200.48:4039 209.85.153.100:80 ESTABLISHED 248
TCP 192.1.200.48:8080 209.85.153.100:80 ESTABLISHED 248
检查哪个进程绑定了您的端口。现在,如果您确定需要杀死该进程,那么在上面的示例中为248
Linux:
kill -9 248
Windows:
taskkill /f /pid 248
它会杀死那个过程
答案 1 :(得分:9)
如果您在代理服务器后面,可能会发生此问题 我有同样的问题,并通过以下方式解决: 偏好 - >一般 - >代理设置 - >没有代理。
"可能tomcat就绪消息已发送到代理 - 并且从未到达IDE。"
答案 2 :(得分:6)
尝试部署时遇到了同样的问题,tomcat在Tomcat实例运行时无法重启。关闭IDE并检查TASk Manager - 杀死正在运行的任何javaw进程,这解决了我的问题。
答案 3 :(得分:4)
看看你的正在运行的进程,看起来你当前的Tomcat实例并没有停止。它仍在运行,NetBeans尝试启动第二个Tomcat实例。 这就是你的例外的原因,你只需要停止第一个实例,或者在当前运行的实例上部署代码
答案 4 :(得分:3)
如果在Linux上,您可以使用此脚本杀死现有的Tomcats
#/bin/bash
if [ `whoami` != root ]; then
echo "Please run this script as root or using sudo"
exit
fi
echo
echo "finding proceses that have name java and established connections status"
echo
echo "Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name"
netstat --tcp --programs | grep "ESTABLISHED" | grep "java"
echo
echo "finding proceses that use port 8080 or http-alt"
echo
netstat --tcp --programs | grep ':8080\|:http-alt'
echo -n "Do you wish to kill a process listed above?[Y/n]"
read choose
if [ "$choose" = "Y" ] || [ "$choose" = "y" ] || [ -z "$choose" ]
then
echo "enter pid to kill"
read procesId
kill -9 $procesId
fi
echo "done exiting"
exit 0
答案 5 :(得分:3)
将代理设置更改为"无代理"在netbeans中,tomcat prbolem得到了解决。试试这个它认真工作。
答案 6 :(得分:2)
杀死以前的tomcat实例或在8080上运行的进程。
转到终端并执行此操作:
lsof -i :8080
输出类似于:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 76746 YourName 57u IPv6 0xd2a83c9c1e75 0t0 TCP *:http-alt (LISTEN)
使用它的PID来终止这个过程:
kill 76746
答案 7 :(得分:1)
选择项目 - >右键单击 - > 清理并构建,然后再次运行项目,只需为我解决问题。
因为,多个进程可以绑定相同的端口,例如端口8086,在这种情况下,我必须使用PID终止与端口有关的所有进程。这可能很麻烦。
答案 8 :(得分:0)
将您的Tomcat
端口地址更改为8084
,将Shut Down Port
更改为8025
。这将解决您的问题。
在其他情况下,防病毒程序可能会导致问题。我有K7总安全性的这个问题。在我的情况下,K7防火墙阻止了8084端口。简单的解决方案是在K7防火墙列表中为Netbeans添加例外。
为此,请打开 K7 并转到设置 - > 防火墙设置 - >选择应用标签,然后找到Netbeans。
选择Netbeans并单击编辑链接。在下一个屏幕上,选择授予完全网络访问权限单选按钮。
现在转到Netbeans并启动服务器。
答案 9 :(得分:0)
更改[tomcat_home_dir] /conf/server.xml中的默认端口 找到
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将其更改为
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
答案 10 :(得分:0)
我通过将Tomcat 8.5。*替换为 Tomcat 7.0。* 版本来解决此问题。
答案 11 :(得分:0)
此错误消息也可能是SELinux引起的。检查SELinux是否已通过getenforce
您需要调整SELinux以使用您的端口并重新启动。
I.E。
semanage port -a -t http_port_t -p tcp 9080 2>/dev/null || semanage port -m -t http_port_t -p tcp 9080
答案 12 :(得分:-1)
我也有这个问题。我更改了端口并做了其他事情,但是他们没有帮助我。就我而言,我在安装Netbeans之后将Tomcat连接到IDE。之后,我刚刚卸载了Netbeans和Tomcat,然后又重新安装了NetBeans和Tomcat(不单独安装)。问题就解决了。