Tomcat v7.0 Server setup for ports 8086 and 8009 - java

I am new in java programming. I have write a small web program using struts. I ve already install apche tomcat 7 server. I configure this server to my project. Tomcat server error showing When I run this program. The error is
Starting tomcat v7.0 server at localhost encountered a problem
Several ports (8086, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s)

You need to find out which process are running over that port and if it is not needed you can kill them
or you can change your tomcat's configuration to start the Tomcat instance on another port
for this you need to edit your server.xml file located at TOMCAT_DIR/conf/

how to solve this Port 8080 required by Tomcat v7.0 Server at localhost is already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).

You can change your tomcat ports

you can change the port details in {TOMCAT_HOME}\conf\server.xml

You've another instance of Server already running. You can confirm this by going to http://localhost:8080 in your webbrowser and check if you get the specific 404 error page and Tomcat default home page. Both are equally valid evidence that Tomcat runs fine.
You need to shutdown it.
Open the task manager and kill all java and/or javaw processes.
Now open your project and run your application.
Open Window -> Preferences -> Server
If Tomcat is not installed go through these steps otherwise skip step
In “Servers” area, right click -> New -> Server.
You will find Tomcat vx.x Server under “Apache” folder as shown
below.
Select “Tomcat v6.0 Server” and click Next.
Select the Tomcat Root folder which has bin folder and click Next.
There are no resources to be configured and hence click Finish.
The configured Apache Tomcat Server will be displayed in the
“Servers” view.
If Tomcat is already installed then go through these steps:
In "Server" area, right click -> Add and Remove...
Under this, the project need to be configured add the project from
"Available:" box to "Configured:"
Click finish to run the server.

Related

Tomcat server stopped but eclipse says ports are still in use

I have stopped my Tomcat 7.0 server in Eclipse. When I go to the server view, it has confirmed that the tomcat server has stopped. Yet any time I try to run a new project on the Tomcat Server, I get the error
"Several Ports (8080, 8009) required by Tomcat v7.0 Server at localhost are already in use..." How do I get tomcat server to run my java project?
Go to localhost:8080 and see if you get a response.
If so, try going to the /bin folder and running shutdown.sh(.bat depending on your OS).
Go to the terminal and execute the command:
brew services stop tomcat
Post this.. dont start any services using "brew"
Run your application using Run on Server
If the state of the server is marked stopped then do the following:
Go to Window>Show View>Other
Select Server>Servers
In the console if you see stopped, synchronized, right click on the line where you see stopped and start the server

Tomcat starts but home page cannot open with url http://localhost:8080

I am a newbie in Java, and I am trying to develop a web application.
I have Windows 7 32 bit. I have installed Java 7 and set the path and classpath as well. After that I installed Tomcat 7.
When I try to open tomcat home page using URL localhost:8080, it does not open and Tomcat stops automatically.
Please help me.
Make sure no other application using port 8080 before starting tomcat. If that's not the problem please paste tomcat log.
If you want to change tomcat's default port, go to tomcat folder and open conf folder, in which you can see server.xml. In that file you can see something like <Connector port= . Change the port value and start tomcat.
If you started tomcat through eclipse, It can be solved in different ways too.
Method 1:
Right click on server --> Properties
click on Switch location and apply.
Method2:
Double click in the server in eclipse.
Change Server location to Use tomcat installation(takes control of tomcat installation).
Your issue is not with port 8080, but with port 8005. Port 8005 is the shutdown port for Tomcat.
Rather than trying to figure out what is using port 8005, it may just be easier to edit TOMCAT_DIR/conf/server.xml and change the shutdown port to 8006
<Server port="8006" shutdown="SHUTDOWN">
For *Unix based systems, you can check the ports used by a particular application by issueing the following command in the terminal
[~/.]$ netstat -tuplen
You will get the list of all the ports that are being currently held and used by their respective process ID's
For windows user, type netstat -anin command prompt to see ports that are listening, this may come handy.
1) Using Terminal (On Linux), go to the apache-tomcat-directory/bin folder.
2) Type ./catalina.sh start
3) To stop Tomcat, type ./catalina.sh stop from the bin folder. For some reason ./startup.sh doesn't work sometimes.
For mac users
First Try : go to activity monitor -> search for java and kill the instance then restart the server and try.
Second Try:
Check log file for any errors under tomcat logs folder.
Use below command to check tomcat logs in terminal
tail -f {tomcatpath}/logs/catalina.out
Third Try:
Check if node or other apps using the same port. Use below command to check which app listening to a specific port. You will see list of apps with pid in second column.
lsof -i :8080 | grep LISTEN
Kill the process using below command
sudo kill -9 pid
If you are using eclipse to start the server then check for the server location being used and the deployment path:
In my case changing this to Tomcat installation instead of workspace metadata worked for me.
My issue has solved.I was getting log as below.
SEVERE: StandardServer.await: create[localhost:8005]:
java.net.BindException: Cannot assign requested address: JVM_Bind
My tomcat server was automatically stopping when I tried to open tomcat homepage with
URL.
So I just made some changes in windows->System32->drivers->etc->host file.
keep only 127.0.0.1 localhost and remove all other. your problem will be solved.
Thank you guys for your help :D
If you have your tomcat started (in linux check with ps -ef | grep java) and you see it opened the port 8080 or the one you configured in server.xml (check with netstat --tcp -na | grep <port number>) but you still cannot access it in your browser check the following:
It may start but with a delay of 3-5 minutes. Check the logs/catalina.out. You should see something like this when the server started completely.
INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 38442 msIf you don't have this INFO line your server startup is not complete yet. The problem may occur due to the SecureRandom class responsible to provide random Session IDs and which can cause big delays during startup.
Check more details and the solution here.
Check your firewall (on linux iptables -L -n): You can try to reset your firewall completely iptables -F if you are not into an exposed environment. However, pay attention, that leaves you without protection therefore it can be dangerous.
Check your selinux (if you are on linux).
These are some of the most forgotten and not obvious issues in having your Apache Tomcat up and running.
I am using Eclipse Java EE IDE for Web Developers. Version: Oxygen.1a Release (4.7.1a) in Windows 8.1 x64 with Apache Tomcat 8.5.24 (for testing purpose).
Port Name & Numbers for my Tomcat Server are :
Tomcat admin port : 8005
HTTP/1.1 : 8081 (my Tomcat Listening Port Number)
AJP/1.3 : 8009
Peoples, for those the Tomcat were running good earlier, and sometimes sudden after stopping tomcat server explicitly by pressing the below shown image button or may be other reasons.
Either they continuously failed to start/restart the tomcat with below said error:
Server Tomcat vX.Y Server at localhost failed to start.
or sometimes the Tomcat Server is started but instead of showing Tomcat Homepage in web browser, it is throwing client exception HTTP Status 404 – Not Found. in preferred web browser.
possibly, there are many reasons i.e. wrong Host name defined, Wrong Tomcat Server Locations defined in eclipse, project JDK/JRE version mismatch with Tomcat JRE dependent version, maven project version mismatch due to maven.compiler.source and maven.compiler.target version not defined under properties tag, mismatch version of project facet Dynamic Web Module to 2.5/3.0, Sometimes Tomcat Server is running on Windows Services level, previous stopped Tomcat port number were still listening and the processing pid were not killed in Tomcat defined timespan Timeouts Stop (in seconds): 15(by default) in eclipse and pid still running, failed to start in defined Start (in seconds): XX, etc.
Here I will give the resolution on, how to check and kill the running existing Tomcat port number's processing pid(beware, you must be aware with after effects).
In Windows, open you command prompt, and follow steps(my tomcat HTTP port is 8081):
netstat -ano | findstr :8081
TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 2284
TCP [::]:8081 [::]:0 LISTENING 2284
if any listening is being there, above command will list details of port listening along with processing pid at last of the line(here pid is 2284).
now kill the running pid like:
taskkill /PID 2284 /F
SUCCESS: The process with PID 2284 has been terminated.
also illustrated the above two steps like following:
Now, after resolving above illustrated reason, start the Tomcat Server.
I had the same issue. My tomcat was started but I was getting HTTP 404 page not found.However, in my situation, I installed tree instances of tomcat. Each instance contains conf, temp, work, webapps and logs folders. Unless I forgot, to copy the global web.xml under conf folder of each tomcat.
e.g: /opt/tomcat/mytomcatInstance/conf/web.xml
The web.xml Deployment Descriptor file describes how to deploy a web application in a servlet container.
So even if my tomcat was up, my web apps could not be deployed properly.
The problems may happen because of memory issue.
java.lang.OutOfMemoryError: Java heap space
please verify the logfile, any issues related to hardware(memory).
Look in TomcatDirectory/logs/catalina.out for the logs. If the logs are too long, delete the catalina.out file and rerun the app.
In my case, the port that tomcat was running on was defined in an application.properties file for 8000, not 8080. In my case, it looked like the same problem described here. Just leaving this here in case anyone has a similar setup and issue! :)

How do you know if Tomcat Server is installed on your PC

I am using Windows 7 OS.
I just installed jaspersoft server which installed Apache Tomcat and mysql as a bundle along with it.
I go to http://localhost:8080 and theres a message that says webpage is not available.
I am a beginner, and I would like to know if Tomcat is first installed on my computer. Can you tell
me how I can do that ? ( I would also like to know if it has to be started and on what
port it was installed.)
UPDATE
Heres something I did . i am really confused now . I found the location of the tomcat server. I found the server.xml file. The port in the server.xml file was listed as 8005. I also found start.bat which I ran. I now see that http://localhost:8080 works but http://localhost:8005 doesnt . Would you know why ?? The port 8005 should work because thats what was listed in the server.xml
The port 8005 is used as service port. You can send a shutdown command (a configurable password) to that port. It will not "speak" HTTP, so you cannot use your browser to connect.
The default port for delivering web-content is 8080.
But there may be other applications listen to that port. So your tomcat may not start, if the port is not available.
You asked "How do you know, if tomcat server is installed on your PC?". The answer to that question is: You can't
You can't determine, if it is installed, because it may be only extracted from a ZIP archive or packaged within another application (Like JBoss AS (I think)).
You can check in windows services if tomcat is installed it will be listed in windows services.
To check the windows service list of services installed on windows machine use
WINDOWS KEY + R and type services.msc
There you can find all the services related with Jasperreport server like Tomcat and MySQL with name starting Jasperreport server Tomcat and MySQL only if these services are installed and its need to be started by selecting the option.Then you can access it through browser using this link :-
http://localhost:8080
default port for tomcat is 8080.
In order to make
http://localhost:8080
work, tomcat has to be started first. You can check server.xml file in conf folder for the port information. You can search if tomcat is installed on your machine. Just go to start and then type tomcat. If it is installed it will give you the directory where it is installed. Then you can select that path and run it from command prompt. Example if tomcat is installed in C:\Programfile\tomcat. You need to set this path in command prompt,go to bin folder and startup. Example: C:\Programfile\tomcat\bin\startup. Else you can also run it by directly going to the path and run startup batch file.
In case of Windows(in my case XP):-
Check the directory where tomcat is installed.
Open the directory called \conf in it.
Then search file server.xml
Open that file and check what is the connector port for HTTP,whre you will found something like 8009,8080 etc.
Suppose it found 8009,use that port as "/localhost:8009/" in your web-browser with HTTP protocol.
Hope this will work !
For linux ubuntu 18.04:
Go to terminal and command:$ sudo systemctl status tomcat
Open your windows search bar, and search for the keyword Tomcat. If a shortcut file is found instead, you can open the source file location of the shortcut by right-clicking the shortcut file and selecting the Properties.

java.net.BindException: Address already in use:8080

I am trying to run a Java webapp build instance but it stops in the middle of the build with this error:
java.net.BindException: Address already in use:8080
It's obviously trying to bind to the 8080 port but another process has already done so and wont share.
So, I checked to see what process is using the 8080 (netstat -anp | grep 8080). Apparently the jsvc.exec process is listening to my 8080 port. Upon checking (ps -fp) I find out that this is Tomcat (boostrap.jar).
So, to see if the build would at least complete, I killed the process. And yeah!! The Webapp build installed completely. But when I navigated my browser to localhost:8080 it says the service is not running - coz I killed Tomcat! I even tried localhost:8080/manager/list. Still said service not running.
So I restart Tomcat, checked localhost:8080 and Tomcat was back up. Checked localhost:8080/manager/list but did not see the Webapp instance I had just built.
What I am not getting here! My webapp wont build if I run tomcat (cant share 8080). And If i kill tomcat to complete the build, the webapp obviously cant run coz Tomcat is dead.
Please help me. Running Tomcat 5.5 in a LAMP environment on a remote server. NOTE: I am running a pre-built webapp build application (war) which I cant make changes to.
During a build? A build process usually doesn't require a port to be open. The issue is that two programs are attempting to use the same port. Without fixing the underlying issue, the immediate fix is to change the port Tomcat is running on. To change the port Tomcat runs on, edit install_dir/conf/server.xml and change the port attribute of the Connector element from 8080 to 8081.
If this is your first time running Confluence or you have recently added applications or made changes to the system, investigate what's running on port 8080.
If Confluence was not shut down properly, you can restart the machine or kill the process:
On Windows:
Hit Ctrl-alt-delete and look at open programs. Look for {{java.exe}}.
From a command window, run {{netstat -an}}. Check which ports are in use. You can identify which application is running this way, then close it from the Task Manager.

debugging java application deployed in tomcat

I have an application that I deployed in tomcat. Later I configured the code as a project in Eclipse. I want to connect to the tomcat via eclipse and debug the application.
Trying to setup a remote debug connection is throwing up errors. Is there any entry that I need to add somewhere in tomcat?
First, you need to run Tomcat in debugging mode. The easiest way to do that is to modify the startup file (.bat or .sh depending if you are Windows or not). Find the line near or at the end of the file that contains the start command, and change it to jpda start. This will cause Tomcat to start in debugging mode listening on port 8000.
Next, to connect to this process via Eclipse, select the Run menu and choose Debug Configurations.... In the pane on the left, choose Remote Java Application and click the New launch configuration button above the list. The important settings to note are the Host and Port fields. The host value must match the hostname of the Tomcat process, and the port should be 8000. You also might need to add entries on the Source tab to ensure that all of the source code is available to step through.
Create a new tomcat server
Create a new dynamic web project
Export war to tomcat server
Tomcat debug configuration(important), first double click tomcat server, then select "Use Tomcat installation (takes control of Tomcat installation)"
Add breakpoints
Run tomcat in debug mode
Test war in web browser
Edit source path
Debug source code in Tomcat
The war file is available here.
yes, you need to configure tomcat to accept remote debugging connections. There is a FAQ on how to do it with various IDEs.
http://wiki.apache.org/tomcat/FAQ/Developing#Q2
Simply change the line in startup.bat (if you are using Windows)
from:
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
to:
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
Right Click on the project you want to debug and go to Debug As Menu and in the list click on Debug Configurations.
Then Double click on the Remote Java Application from left menu list. browse for the project u wanna add in then click apply.
Also change the listening port to 7999, then after you started the web app from your localhost click the debug button on the same window. Then any break point's will be hit after that.
Steps to setup the tomcat Debugger with eclipse
Install the following things:
java 1.8+
eclipse EE version
download tomcat 8+
open eclipse and go to servers tab and add a new server(window-> show View-> Others -> Search Servers)
Mark your project as Dynamic web Project(Rightclick on Project-> project facets -> select Dynamic web module)
Export war (File-> Export-> search war -> select module and choose the path)
Run as -> Run on Server
Start the tomcat Server in Debug or Run Mode
check on localhost:8080
Debug worked for me. I was using tomcat 8, configured on centos 7. Debug port opened for me after changing 2 settings.
Open tomcat/conf/bin/startup.sh and added below lines
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
In the same file startup.sh, added jpda before start command.
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$#"
Restart the tomcat.
In eclipse go to Run>Debug configuration>Remote java application>Add host ip and port(8000) where tomcat is running.
In my case i required to open 8000 through firewall too.
firewall-cmd --zone=public --permanent --add-port=8000/tcp
firewall-cmd --reload
Beside remote debugging, you can debug your app locally within eclipse if you added tomcat in eclipse.
just start server and wright click your app and from debug menu hit debug on server.
If you have multi module maven project, debug on server just shown up for module with war packaging.
If you want debug a class that runs at startup by self, like methods that annotated with #PostConstruct, remember that you should increase server timeout.
To do that, go to server view and double click on tomcat and in server preview tab, increase the timeout value.

Categories