I cannot have my tomcat server started and at the same time use internet.
either I can start Tomcat (in Eclipse) and internet is not available.
or I can access the internet but tomcat cannot be started.
Here the original probleme I had when I first wanted to use Tomcat and display my html page on localhost.
GRAVE: StandardServer.await: create[localhost:8005]: I find a way to start the Tomcat Server: in the terminal:
sudo lsof -i : 8005 # checks port 80
sudo route -n flush
sudo route add default 192.168.1.1
then I can use tomcat and localhost:8080 but my internet connexion is dead
if I want my internet connexion then I stop the tomcat server by clicking on the red square in eclipse and then in the terminal I do:
sudo route -n flush
sudo route add default 192.168.0.1
THen I can use internet but tomcat cannot be restarted. I have to undergo the first process.
this of course is a very boring process and I would like to know what 's wrong and how I could fix it.
I use tomcat 9 / Mac OS sierra / Eclipse Neon3
When you say "my internet connexion is dead", do you mean that your network connection drops or that your DNS lookups fail? (What do you think this command is doing and why are you performing it: sudo route add default 192.168.1.1?)
If your program is modifying your system's connectivity settings, I would strongly recommend against preventing it from doing that. There's no reason for it to do so at that level, a more appropriate place to set settings would be at some deploy stage.
Alternatively, you could run your app in a Docker container which I strongly suspect will solve your problem. Visit www.docker.com to learn more.
I want to add a new extension and for that I need to stop hybris server first, but I am unable to figure out how exactly I should STOP the server: through command line or by admin Console?
I cannot type any command as my server is running.
I also started the server by using hybrisserver.bat
just push ctrl + c in the command line window and the server is shut down properly
As a small side note, if you'd like to stop a hybris server through the admin console, you could always go to Console > Scripting Languages > Edit Statement and execute System.exit(0);
hybris has got all the necessary runtime shutdown hooks to do a graceful (as if you did CTRL + C).
In theory it's also possible to restart the hybris system internally by executing:
import de.hybris.platform.core.Registry;
Registry.destroyAndForceStartup();
By default, there's a restriction to forbid doing so using groovy scripts, though.
Sometimes it happen that the hybrisserver is runned on another console and even after hybrisserrver.sh stop some processes are still running. And you will receive message like:
INFO: Illegal access: this web application instance has been stopped already
My solution is (for linux based systems):
lsof | grep hybris
To get the processes runned from "hybris" directory(change on you need) and then kill the listed processes with:
kill -15 <PROCESS_ID>
PS. (This solution require the root privileges)
Use this command /bin/platform/hybrisserver.sh stop
That will stop the server.
I tried to start glassfish server via the Netbeans IDE but it showed this error:
Could not start GlassFish Server: Administrator port is occupied by null
C:\Users\Ateeq Khaliq\Documents\NetBeansProjects\WebApplication1\nbproject\build-impl.xml:1045: Deployment error: Could not start GlassFish Server: Administrator port is occupied by null
See the server log for details.
BUILD FAILED (total time: 2 seconds)
I have changed the port also to 9999 in C:\Users\Ateeq Khaliq\GlassFish_Server\glassfish\domains\domain1\config file.
How can I fix this?
Change this
the solution is change the host configuration
netstat -aon | find ":4848" | find "LISTENING"
Kill the process that is using your Administrator port
Its seem to be a Bug in Netbeans
if you have alraidy found a solution please let me know.
I had the exact same problem and the way I solved it was to delete the glassfish, tomcat7 and tomcat 8 servers from my IDE. I then deleted their folders on my hard disk and reinstalled the glassfish alone. Everything worked fine after that.
If Netbeans is blocked by Firewall this happens. Make sure your Antivirus firewall is not blocking NetBeans. Grant NetBeans full access to act as a server (This is also asked when you start NetBeans).
Then you should be able to start your server through NetBeans
remove glassfish server from Netbeans and added another one click Tools-servers
select your server and click remove servers and click add servers change the domain name and change port from 8080 to 8090 as you like. restart Netbeans
It has a really simple solution, just restart the Java process in your machine and you should be good to go..
I have a Java application which is running as non root mode.
My App will create a TFTP server (using apache commons tftp). TFTP server is bind to port 69(Default TFTP port). When running the app from IDE everything works fine since the IDE running as root. But if the app is run from other user i get the error
java.net.BindException: Permission denied
It is clear that for non root user i can not open the port. Is there a workaround for this issue?
For binding on Linux of ports less that 1024 you need to application to run a root. There is no way around this. If you need to do this you have you run as root. sudo might be the command to look into.
BTW - Running your IDE as root is not a very good idea.
To resolve this issue. You can use setuid() and setfid() system calls. So that you can temporarily elevate the permissions and then drop the permission back to user permissions.
In my Case, this problem happened in Solaris 11 OS. I added privileges to user to use the ports under 1024.
https://technicalsanctuary.wordpress.com/2014/06/03/allowing-a-user-to-use-ports-under-1024-on-solaris-11/
Some times whenever I restart the application, which is built on
Java
Struts
Mysql and Jboss 4.05 Version
I get the error as Address already in use: JVM_Bind
Only fix that i know is to restart the machine and try again, it will work.
Else Some times I do Ctrl-Alt-Del and Stop all the process related to Java, some times this also works.
But what is the exact reason and how can we prevent this problem ?
Address already in use: JVM_Bind
means that some other application is already listening on the port your current application is trying to bind.
what you need to do is, either change the port for your current application or better; just find out the already running application and kill it.
on Linux you can find the application pid by using,
netstat -tulpn
In windows this scenario happens when Eclipse crashes without a clean shutdown it will have the local Jetty or Tomcat server keep running.
When you reopen Eclipse and try to start server again this will lead to the "Address already in use: JVM_Bind"
You can solve this by opening Task Manager and find the javaw.exe process and ending it.
Then you can restart the server on Eclipse.
On windows, in an elevated cmd/ps
net stop winnat
then
net start winnat
Resets the windows' NAT service and that removes faulty listeners.
This method works for most 'cannot listen on this port' errors, like as in Docker, JVM etc.
I usually come across this when the port which the server (I use JBoss) is already in use
Usual suspects
Apache Http Server => turn down the service if working in windows.
IIS => stop the ISS using
Skype =>yea I got skype attaching itself to port 80
To change the port to which JBoss 4.2.x binds itself go to:
"C:\jboss4.2.2\server\default\deploy\jboss-web.deployer\server.xml"
here default is the instance of the server
change the port here :
<Connector port="8080"
address="${jboss.bind.address}" >
In the above example the port is bound to 8080
Open command line and type: netstat -a -o -n or tasklist to see currently running processes.
Find port that related to Java and type: taskkill /F /PID <your PID number>.
Click Enter.
Is it possible that MySql listening on the same port as JBoss?
Is there a port number given in the error message - something like Address already in use: JVM_Bind:8080
You can change the port in JBoss server.xml to test this.
For the sake of completeness as many may fall in this SO for other reasons than OP's question, here is another info that saved my day :
TL;DR;
Check that the port you want to open is not reserved (even though no application has opened it)
On windows :
netsh interface ipv4 show excludedportrange protocol=tcp
Explanation :
At least on windows, another possible cause for the java.net.BindException: Address already in use: JVM_Bind is that the operating system has "reserved" the port.
If you use the commands from other answer in this topic, they will tell you that no application is listening to the port, yet you cannot open it.
Some windows update like this one reserves range port that can then no longer be claimed by processes.
Though not explicit on the port that can no longer be opened, the update note mentions a command that can help troubleshooting the issue :
netsh interface ipv4 show excludedportrange protocol=tcp
this will yield a list of port range that are blocked :
Protocol tcp Port Exclusion Ranges
Start Port End Port
---------- --------
5357 5357
49709 49808
49809 49908
49909 50008
50009 50108
50109 50208
50280 50379
* - Administered port exclusions.
The quick answer on how to prevent it is that you most likely need to stop JBoss before starting it again.
You should be able to call the "Terminate" button in the Console view to shutdown the server.
That error means that the you are trying to create a new ServerSocket on a port already in use by another ServerSocket. So try to make your application closing all sockets and connections you know about and be sure your application is completely terminated. Also check if there is another proces you launched by your program.
It can be also caused by double definition of port 8080 in ..\tomcat\conf\server.xml :
<Connector port="8080"
enableLookups="false" redirectPort="8443" debug="0"/>
<Connector port="8080"
enableLookups="false" address="127.0.0.1" maxParameterCount="30000"/>
please try following options for JVM binding exception:
start and stop the server. and check the server process ids and kill and stop the server.
go to control panel->administrative tool-> service-> check all server and stop all the servers and then start your own server.
change the Browser which your using. for example if
your using IE ,change it to Mozilla firefox.
I was having this problem too. For me, I couldn't start/stop openfire (it said it was stopped, but everything was still running)
sudo /etc/init.d/openfire stop
sudo /etc/init.d/openfire start
Also, restarting apache did not help either
sudo /etc/init.d/apache2 restart
The errors were inside:
/opt/openfire/logs/stderror.log
Error creating server listener on port 5269: Address already in use
Error creating server listener on port 5222: Address already in use
The way I fixed this, I had to actually turn off the server inside the admin area for my host.
I had the same on Windows. My solution was to get which port the debug wants to connect to. (In IntelliJ a red rectangle already giving the info: "Error running Tomcat: Unable to open debugger port (127.0.0.1:XXXXX): ... Already in use...")
Let's say XXXXX is the port number.
Then i searched for the problem and the PID in a cmd window:
netstat -ano | find "CLOSE_WAIT" | find ":XXXXX"
I got the PID number as the last number in the result line. (Let's say YYYY)
Finally:
TASKKILL /PID YYYY
An extra info: Winscp logged out meanwhile, probably it was causing my problem. :)
This recently happen to me when enabling JMX on two running tomcat service within Eclipse. I mistakenly put the same port for each server.
Simply give each jmx remote a different port
Server 1
-Dcom.sun.management.jmxremote.port=9000
Server 2
-Dcom.sun.management.jmxremote.port=9001
You can try deleting the Team Server credentials, most likely those will include some kind of port in the server column.
Like https://wathever.visualstudio.com:443
Go to Windows/Preferences
expand Team then Team Foundation Server
go to Credentials and remove whichever is there.
On Mac, even when I'd search with netstat, no processes were binding to that port, but I'd still get the "Address already in use" Bind exception.
In this case, going into
Safari -> Preferences -> Privacy -> Manage Website Data... -> finding "localhost" -> Remove
fixes the problem, if there really is no process running with that port. It seems Safari's web cache maintains a reference to the port somehow, and removing that cache frees up the port.
Sometimes, I use lsof -i:8080 and I get nothing back, no pid. Well something has to be taking place. If this is your case, it could be docker. By using docker ps you can check if you have any old dockers lying around and kill them. This could be the culprit for a port already in use error.