可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
When i run my java project using netbeans i get the following error:
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)
I tried changing the server port to 8081 and shutdown port in tool->server, It runs fine but again if i do any operations and run the project it says "Deployment error:Starting of Tomcat failed, the server port 8081 is already in use" What would be the problem can any one help me.
回答1:
goto command prompt
netstat -aon
for linux
netstat -tulpn | grep 'your_port_number'
it will show you something like
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
check which process has binded your port. here in above example its 248
now if you are sure that you need to kill that process fire
Linux:
kill -9 248
Windows:
taskkill /f /pid 248
it will kill that process
回答2:
If you are behind a proxy server this issue could happen i had the same issue and was solved by: Preferences -> General -> Proxy Settings -> No Proxy.
"Maybe the tomcat ready-message was sent to the proxy - and never reached the IDE."
found @: https://netbeans.org/bugzilla/show_bug.cgi?id=231220
回答3:
I had the same problem when trying to deploy, tomcat failed to restart as Tomcat instance was running. Close the IDE and check TASk Manager - kill any javaw process running, that solved the problem for me.
回答4:
Take a look on your running processes, it seems like your current Tomcat instance did not stop. It's still running and NetBeans tries to start a second Tomcat-instance. Thats the reason for your exception, you just have to stop the first instance, or deploy you code on the current running one
回答5:
By changing proxy settings to "no proxy" in netbeans the tomcat prbolem got solved.Try this it's seriously working.
回答6:
If on Linux you can kill existing Tomcats with this script
#/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
回答7:
Kill the previous instance of tomcat or the process that's running on 8080.
Go to terminal and do this:
lsof -i :8080
The output will be something like:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 76746 YourName 57u IPv6 0xd2a83c9c1e75 0t0 TCP *:http-alt (LISTEN)
Kill this process using it's PID:
kill 76746
回答8:
Select the project -> Right-Click -> clean and build and then run the project again simply solve the problem for me.
As, multiple process could bind the same port for example port 8086, In that case I have to kill all the processes involved with the port with PID. That might be cumbersome.
回答9:
I had a similar issue, except it was port 80 that was already in use. It turned out to be Microsofts IIS services. I dont use them at all so just uninstalled them through appwiz.cpl.
回答10:
In my case I accidentally added two instances of server and got this error.. Just take a look in Services
tab under Servers
and remove one of the instance... and restart the server... :)
回答11:
Change your default port in [tomcat_home_dir]/conf/server.xml find
change it to
回答12:
Change your Tomcat
port address to 8084
and Shut Down Port
to 8025
. This will resolve your problem.
In other cases antivirus programs may cause problems. I had this problem with K7 total security. In my case K7 Firewall was blocking the 8084 port. The simple solution is to add an exception to Netbeans in K7 Firewall list.
In order to do that, open K7 and goto Settings -> Firewall Settings -> select Applications tab and find Netbeans.
Select Netbeans and click on edit link. On next screen select Grant Full Network access radio button.
Now goto Netbeans and start the server.
回答13:
I have fixed this, in Windows 8.1 x64.
- goto -
%userprofile%\AppData\Roaming\NetBeans\8.1\apache-tomcat-8.0.27.0_base\work\Catalina\localhost
- Delete all folder without (manager and ROOT) folders
- goto -
%userprofile%\AppData\Roaming\NetBeans\8.1\apache-tomcat-8.0.27.0_base\conf\Catalina\localhost
- delete all files without (
manager.xml
and ROOT.xml
) - goto NetBeans and Start Tomcat server