29

Did some google on it and the solution was to redirect using iptables or mod in apache? Since my application uses websockets the above solution breaks my websocket connectivity and I again have to connect to my websockets using port 8080. Is there any way that I can run the glassfish itself on port 80 so that my websockets also run on port 80 making easier for users behind corporate firewall to access the app since corparates may block 8080.

I have root access as well.

Cœur
  • 32,421
  • 21
  • 173
  • 232
anandaravindan
  • 2,083
  • 6
  • 23
  • 35

4 Answers4

59

To run GlassFish on port 80 you need to :

  1. Connect to the administration interface (by default on port :4848)

  2. In the left menu go to Configurations

  3. Then select the appropriate configuration you need to change eg server-config

  4. Then go to Network Config

  5. Then go to Network Listeners

  6. Select the appropriate listener, probably http-listener-1

  7. Change the Port value to 80

  8. Save and reboot your GlassFish server/instance/cluster according to your needs

Using the command line utility

asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.port=80 

you may need to replace server-config and/or http-listener-1

Matt
  • 40,384
  • 7
  • 62
  • 97
Alexandre Jacob
  • 2,678
  • 1
  • 21
  • 30
  • 6
    Yes of course, `asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.port=80` you may need to replace `server-config` and/or `http-listener-1` – Alexandre Jacob Aug 06 '13 at 23:26
  • changing the port shouldn't cause Glassfish to fail to start, should it? That's unrelated? – Thufir Nov 02 '14 at 09:12
  • 5
    It should not be related but keep in mind that on unix system you can't listen on a port lower than 1024 if you are not root. In this case you'll probably get a *SocketException: Permission denied* – Alexandre Jacob Nov 02 '14 at 14:05
  • Or you could create new listener instead of changing existing one. Depends, what you want/need. – Dainius Oct 04 '15 at 11:49
  • In Linus Systems, how can we do this? Can we run GlassFish as root? – Buddhika Ariyaratne Nov 09 '19 at 00:16
33

Go to glassfish4\glassfish\domains\domain1\config folder and here open domain.xml file and find tag

<network-listeners>
    <network-listener port="9999" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
</network-listeners>

in port attribute of <network-listeners> you can specify your port address whichever you want.

shinjin
  • 2,546
  • 4
  • 26
  • 41
mukul anand
  • 331
  • 3
  • 2
3

Here's another approach.

You can go to the admin console under port 4848 (I am using Glassfish 4.1.2) and navigate to "Configuration" > "server-config" > "HTTP Service" > "Http Listeners" > "http-listener-1" in the left hand navigation.

Click on the "http-listener-1" link in the main content window.

Change the port to desired number and save.

enter image description here

Restart Glassfish and run your application.

enter image description here

BustedSanta
  • 1,249
  • 4
  • 27
  • 49
2

in some cases you have to change port before glassfish is started (in my case port 8080 is already in use by another instance) so answer 4 worked for me.

pikimota
  • 223
  • 1
  • 3
  • 14