Command to change tomcat server port - linux

I'm using ubuntu, and I'm in a need of some command, using which I can change the server port configurations.
Therefore, my question is...
Is there any linux command, to update the Tomcat server connection port, as well as server shutdown port?

maksim_khokhlov answer looks promising if you want to change it at the start (it is taken from here)
Basicly you have to change the config in your server.xml.
But I dont think you can change the port at runtime without restarting.
Another way would be to write a script which first changes the server.xml and then starts tomcat.
for example with python
python updateserverxml.py 8888
(and in this file you replace the port and start the server.)
Or another way could be using docker and map the exposed port from your standardport to your desired port.
maksim_khokhlov answer below:
Change your server.xml so that it will use port numbers expanded from properties instead of hardcoded ones:
<Server port="${port.shutdown}" shutdown="SHUTDOWN">
...
<Connector port="${port.http}" protocol="HTTP/1.1"/>
...
</Server>
Here's how you can start in Linux (assuming your current directory is CATALINA_HOME):
JAVA_OPTS="-Dport.shutdown=8005 -Dport.http=8080" bin/startup.sh

1) Go to conf folder in tomcat installation directory
2) Edit connection properties in server.xml file
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

Related

Accessing remote linux server's localhost:8080 from windows desktop

I am a complete beginner with Linux. I have ssh access (I think that's what it is) to a linux server. I have a program called SpagoBI installed on the server, and it needs to be accessed through localhost:8080 in a browser. I have changed the xml file that points to localhost to the ip of the server but I still can't access it. Does anyone have any suggestions on how to access the localhost through the ip?
With SpagoBI configured to answer on localhost (the default), you can use Putty on Windows create an SSH tunnel from your local system to the SpagoBI system. If you were to redirect local 8080 (of your local system) to 8080 of the SpagoBI system, then you could access the remote SpagoBI server like this http://localhost:8080/SpagoBI while the SSH tunnel is up.
Now... to configure the SpagoBI server correctly so that it answers on a specific FQDNS... you'll need to modify the Tomcat server.xml
Go to the Tomcat config directory and edit server.xml. These are two entries you'll need to modify. Then restart tomcat and try to access SpagoBI using the FQDNS and URL.
<Environment name="spagobi_service_url" type="java.lang.String" value="http://spagobi.example.com:8080/SpagoBI"/>
<Environment name="spagobi_host_url" type="java.lang.String" value="http://spagobi.example.com:8080"/>
After restart, try accessing SpagoBI like http://spagobi.example.com:8080/SpagoBI
I hope I understood. Do you write "localhost:8080" on your remote windows machine? If so, you should write the SpagoBI's address instead of localhost.
If you already doing so, I see on SpagoBI troubleshooting that you should try with http://serverIP:8080/SpagoBI/servlet/AdapterHTTP?PAGE=LoginPage&NEW_SESSION=TRUE.
I would check that 8080 port is open on firewall anyway.
If you have access to the GUI on server I would try to open in a browser that http://localhost:8080 is actually working at least locally.
Check whether the spagoBI is working in linux server or not. If not follow these steps: http://www.2daygeek.com/spagobi-5-0-release-notes-installation-steps/
If it's working in linux server, it can be opened in you windows system with the url:http://ipaddress of linux server:portnumber/SpagoBI.

Which ports are used by Jgroups?

I'm using Wildfly 8 for my server, in my server I use Infinispan (which use Jgroups) for cluster cache. I want to know which ports that Jgroups/Infinispan uses, so I can open these ports for communicating between server nodes without disable my Linux firewall.
Thank you.
You may find these answers in your wildfly/standalone/configuration/ directory. I assume you are using standalone-full-ha.xml configuration:
<!-- By default you are using UDP stack -->
<subsystem xmlns="urn:jboss:domain:jgroups:2.0" default-stack="udp">
<!-- Those ports are used for communication -->
<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
<socket-binding name="jgroups-udp-fd" port="54200"/>
Have you checked with basic network command such us
$ netstat -a
you can find more examples in binarytides

How to check jboss running in redhat environment?

I have installed jboss-eap-6.2.0 in redhat environment and started the server.But i'm not able to access the home page via http://<>:8080 .Here i have to access home using ip address or name like http://<>:8080 its getting time out. So i would like to know what is the problem here and why not to see the jboss home here ?
1.Is there any way to check the server running in putty command line ?
2.Able to install the software connecting via ip but same ip is not allowing to access jboss page .So is firewall blocking the port 8080 ?
Please advise
Open the standalone.xml file from the JBOSS_HOME/standalone/configuration directory.
Look for all the texts jboss.bind.address in there and change the ip with the server's IP address so that you can access it from your local pc.
For example
${jboss.bind.address:192.168.1.68}
${jboss.bind.address.management:192.168.1.68}
... and so on...
Also, you can look for the loop back ip address(127.0.0.1) in the xml file as well and replace it.
Even i faced same issue wheni installed jboss7 on centos machine.i found that 8080 port was being used by some other app,thus disabling jboss7 to use that port.
-you can
telnet localhost 8080 (or) ps -ef|grep java
to check if jboss is running
if its running properly and you still not able to connect through your browser
use nmap to check services running on that port
you can edit your port configuration at
jboss/standalone/configuration/standalone.xml
run jboss again
You need to set the value of the default interface in socket-binding as well in your standalone.xml.

New Port cannot be accessed

My server has jboss on port 8080,
Now I wants Tomcat too,
In tomcat 7.0.34 i had made the following changes
<Connector port="8010" protocol="HTTP/1.1"
redirectPort="8443" />
Now while I accessing the application from server local host it works fine..
But I was not able to access from Client side
Note:I had open the port 8010 from server amazon ec2
Make sure the Windows firewall service is started. If this is disabled, you will have issues.
Next, go to Control Panels and edit the firewall settings to allow port 8010 and 8443. Test this by using Telnet 127.0.0.1 8010 and port 8443.

Start Tomcat from Eclipse in port 80 ( Linux )

This question has been asked before, but no real answer has been given ( to the best of my knowledge).
Here is the link to the original question:
Start Tomcat from Eclipse in port 80 in Ubuntu with Authbind.
I do need torun tomcat on port 80.
I prefer not having to install tomcat on the computer. I believe it is not required.
I want to avoid using port forwarding ( I have to do it now since I find no other solution)
I am using:
Ubuntu 12.04
Eclipse Juno
Tomcat 7
OpenJDK 64-Bit Serve - java version "1.7.0_07"
I am able to start tomcat in port 80 as a non root user and without installing tomcat.
I follow this article:
http://java.dzone.com/articles/running-tomcat-port-80-user
There are a lot of articles about the topic, but I found this article to be simple an complete.
When I try to start tomcat using eclipse it always fails and complains about port 80 been used. But it is not true.In fact, while eclipse is running and while the error is been shown in the screen I am able to manually start tomcat on port 80.
I have noticed that eclipse complains about port 80 been used when it does not have access rights to that port. I did get the same error before I was not able to manually run tomcat on port 80. The difference is that when I manually run tomcat it did log an access right error, and eclipse complains about the usage of the port.
I have modified the eclipse tomcat launcher to include the option "-Djava.net.preferIPv4Stack=true" and to start tomcat as "authbind --deep start"
But I always get the same error.
If I start eclipse as root them it works fine, so I do believe the problem is related to the access rights on port 80 and not to port to been used.
I do assume that eclipse starts tomcat with the same user rights used to start eclipse.
Could anybody provide some support?. I can work by using port forwarding, but I would really like to know what I am missing and how to do it right.
The easiest way is to start tomcat with a listener on port 8080 and forward port 80 to localhost:8080:
ssh -L 80:localhost:8080 <user>#localhost
Execute this command with sudo
I thing to run something which uses the ports 1-1024 under Linux the process has to have the root privileges.
I am not sure if I can be helpful to anyone, but I solved similar problem as described: I started tomcat with startup.sh script, it was working fine on port 80. I restarted machine (just in case) and tried starting the same tomcat from eclipse, but when I got error about port 80 being used.
Turns out eclipse does not take startup scripts from tomcat installation, so it does not use the authbind configuration. The best solution I came up with is to start eclipse with authbind:
authbind --deep ./STS
As to why this didn't work:
I have modified the eclipse tomcat launcher to include the option "-Djava.net.preferIPv4Stack=true" and to start tomcat as "authbind --deep start"
As I understand you tried passing "authbind --deep start" as arguments to tomcat. I believe the point of authbind is to start application authbind with tomcat as argument. I don't see any way to do it in eclipse.
I am also now learning eclipse like u. Even i faced the same problem as you. Then, i changed the port number then server is starting now.
To change the port number, u need to double click the Apache Tomcat at servers. Then click on ports and change the HTTP/1.1 port to any four digit number u wish and save it.
It will work.

Resources