Difference between revisions of "Wildfly"

(Created page with "Category:Development JBOSS Wildfly is an application server fully compatible with the JEE standard, like Glassfish. * Official website: http://wildfly.org/ * Download: h...")
 
 
(14 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
* Download: http://www.wildfly.org/downloads/
 
* Download: http://www.wildfly.org/downloads/
 
* Documentation: https://docs.jboss.org/author/display/WFLY8/Getting+Started+Guide  
 
* Documentation: https://docs.jboss.org/author/display/WFLY8/Getting+Started+Guide  
 +
 +
 +
Sources and tools:
 +
* Official JEE 7 examples: https://github.com/javaee-samples/javaee7-samples
 +
* Maven archetype JEE + Arquillian: http://blog.arungupta.me/2014/06/testable-javaee7-maven-archetype-using-arquillian-techtip34/
 +
  
  
Line 14: Line 20:
  
  
Unzip it and launch <syntaxhighlight lang="bash">$JBOSS/bin/standalone.sh</syntaxhighlight>
+
Unzip it and launch the server in ''standalone'' mode:
 +
 
 +
<syntaxhighlight lang="bash">
 +
$wildfly/bin/standalone.sh
 +
</syntaxhighlight>
 +
 
 +
 
 +
You can test the server on http://localhost:8080
 +
 
 +
 
 +
 
 +
=Enable remote access=
 +
 
 +
By default you can only access your server locally. You need to adjust the binding interface and hostname.
 +
 
 +
 
 +
==Quick settings==
 +
 
 +
Since there are a lot of files to edit you can use ''sed''. See below for detail explanations.
 +
 
 +
<syntaxhighlight lang="bash">
 +
## Adjust binding
 +
# replace '172.16.100.61' by your own IP @
 +
#
 +
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/domain/configuration/host.xml
 +
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone.xml
 +
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone-ha.xml
 +
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone-full.xml
 +
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone-full-ha.xml
 +
 
 +
## Adjust hostname
 +
# replace 'myServer' by your real server name (FQDN)
 +
#
 +
sed 's/localhost/myServer/g' -i $wildfly/domain/configuration/host.xml
 +
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone.xml
 +
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone-ha.xml
 +
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone-full.xml
 +
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone-full-ha.xml
 +
</syntaxhighlight>
 +
 
 +
 
 +
Relaunch the server:
 +
<syntaxhighlight lang="bash">
 +
# Stop server
 +
$wildfly/bin/jboss-cli.sh --connect command=:shutdown
 +
# start server
 +
$wildfly/bin/standalone.sh
 +
</syntaxhighlight>
 +
 
 +
 
 +
You should see the following logs:
 +
 
 +
<syntaxhighlight lang="text">
 +
...
 +
Undertow HTTP listener default listening on /172.16.100.61:8080
 +
...
 +
Http management interface listening on http://172.16.100.61:9990/management
 +
Admin console listening on http://172.16.100.61:9990
 +
...
 +
</syntaxhighlight>
 +
 
 +
 
 +
==Manual settings==
 +
 
 +
===Bind interface===
 +
 
 +
Edit your configuration file
 +
 
 +
<syntaxhighlight lang="bash">
 +
vim $wildfly/domain/configuration/host.xml
 +
</syntaxhighlight>
 +
 
 +
 
 +
Adjust the bindings:
 +
 
 +
<syntaxhighlight lang="xml">
 +
<interfaces>
 +
  <interface name="management">
 +
      <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
 +
  </interface>
 +
  <interface name="public">
 +
      <inet-address value="${jboss.bind.address:127.0.0.1}"/>
 +
  </interface>
 +
  <interface name="unsecure">
 +
        <!-- Used for IIOP sockets in the standard configuration. To secure JacORB you need to setup SSL -->
 +
        <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
 +
  </interface>
 +
</interfaces>
 +
</syntaxhighlight>
 +
 
 +
Replace '''127.0.0.1''' by the IP you'd like to use, ex: '''192.168.1.100'''.
 +
 
 +
 
 +
===Set hostname===
 +
 
 +
Edit your configuration file
 +
 
 +
<syntaxhighlight lang="bash">
 +
vim $wildfly/standalone/configuration/standalone.xml
 +
</syntaxhighlight>
 +
 
 +
 
 +
Adjust the hostname:
 +
 
 +
<syntaxhighlight lang="xml">
 +
<host name="default-host" alias="localhost">
 +
    ....
 +
</host>
 +
</syntaxhighlight>
 +
 
 +
replace ''localhost'' by your server name (FQDN), ex: ''nuc-media-center.daxiongmao.eu''
 +
 
 +
 
 +
 
 +
=Create administrative users=
 +
 
 +
There is no users by default. You must create one.
 +
 
 +
 
 +
Launch the creation script:
 +
 
 +
<syntaxhighlight lang="bash">
 +
$wildfly/bin/add-user.sh
 +
</syntaxhighlight>
 +
 
 +
 
 +
 
 +
<syntaxhighlight lang="bash">
 +
What type of user do you wish to add?
 +
a) Management User (mgmt-users.properties)
 +
b) Application User (application-users.properties)
 +
(a): a
 +
 
 +
 
 +
Enter the details of the new user to add.
 +
Using realm 'ManagementRealm' as discovered from the existing property files.
 +
Username : admin
 +
 
 +
 
 +
The username 'admin' is easy to guess
 +
Are you sure you want to add user 'admin' yes/no? yes
 +
 
 +
 
 +
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 +
- The password should not be one of the following restricted values {root, admin, administrator}
 +
- The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
 +
- The password should be different from the username
 +
Password : secret
 +
 
 +
 
 +
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:
 +
 
 +
 
 +
About to add user 'admin' for realm 'ManagementRealm'
 +
Is this correct yes/no? yes
 +
 
 +
 
 +
Is this new user going to be used for one AS process to connect to another AS process?
 +
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
 +
yes/no? no
 +
</syntaxhighlight>
 +
 
 +
 
 +
Now you can access the administrative pages: http://localhost:9990/
 +
 
 +
 
 +
 
 +
 
 +
=Firewall=
 +
 
 +
Edit your firewall configuration and add:
 +
 
 +
<syntaxhighlight lang="bash">
 +
##### Input
 +
$IPTABLES -A INPUT -p tcp --dport 8080 -j ACCEPT  # HTTP alt.
 +
$IPTABLES -A INPUT -p tcp --dport 8443 -j ACCEPT  # HTTPS alt.
 +
$IPTABLES -A INPUT -p tcp --dport 9990 -j ACCEPT  # Wildfly administration
 +
 
 +
 
 +
##### Output
 +
$IPTABLES -A OUTPUT -p tcp --dport 8080 -j ACCEPT  # HTTP alt.
 +
$IPTABLES -A OUTPUT -p tcp --dport 8443 -j ACCEPT  # HTTPS alt.
 +
$IPTABLES -A OUTPUT -p tcp --dport 9990 -j ACCEPT  # Wildfly administration
 +
</syntaxhighlight>
 +
 
 +
 
 +
=Stop server (cmd line)=
 +
 
 +
<syntaxhighlight lang="bash">
 +
$wildfly/bin/jboss-cli.sh --connect command=:shutdown
 +
</syntaxhighlight>
 +
 
 +
 
 +
=Create datasource=
 +
 
 +
 
 +
Source: http://www.techpaste.com/2014/05/08/how-to-configure-datasource-in-jboss-wildfly/
 +
 
 +
Download the latest JDBC drivers:
 +
* MySQL: http://dev.mysql.com/downloads/connector/j/
 +
* Postgresql: https://jdbc.postgresql.org
 +
 
 +
 
 +
 
 +
==Register driver==
 +
 
 +
* Go to Runtime >> Server >> Manage Deployments
 +
* Click on "''Add''" to deploy the MySQL driver.
 +
 
 +
[[File:Wildfly mysql datasource 01.png|700px|Wildfly driver registration]]
 +
 
 +
 
 +
You must enable the driver.
 +
* Select the new driver
 +
* Click on "''En/Disable''"
 +
 
 +
 
 +
[[File:Wildfly mysql datasource 02 driver enable.png|700px|Wildfly driver enable]]
 +
 
 +
 
 +
Now the driver is ready to be used.
 +
 
 +
 
 +
 
 +
==Create datasource==
 +
 
 +
* Go to Configuration >> Datasource >> Manage Deployments
 +
* Click on "''Add''" to deploy the MySQL driver.
 +
 
 +
 
 +
[[File:Wildfly mysql datasource 03 register new datasource.png|700px|Wildfly datasource menu]]
 +
 
 +
 
 +
Fill up the form like this:
 +
 
 +
 
 +
[[File:Wildfly mysql datasource 04.png|500px|Wildfly datasource creation 1/3]]
 +
 
 +
>> JNDI name must be:    '''java:/jbdc/'''''datasourceName''
 +
 +
 
 +
[[File:Wildfly mysql datasource 05.png|500px|Wildfly datasource creation 2/3]]
 +
 
 +
>> You must use ''com.mysql.jdbc.'''''Driver'''_x_y
 +
 
 +
 
 +
[[File:Wildfly mysql datasource 06.png|500px|Wildfly datasource creation 3/3]]
 +
 
 +
* Connection URL: '''jdbc:mysql://'''localhost:3306/AppDS
 +
* Username: ''db_user''
 +
* Password: ''secret''
 +
 
 +
Don't forget to adjust the server, database & user names.
 +
 
 +
 
 +
Now you can enable the datasource:
 +
 
 +
[[File:Wildfly mysql datasource 07.png|500px|Wildfly datasource enable]]

Latest revision as of 20:19, 24 April 2015


JBOSS Wildfly is an application server fully compatible with the JEE standard, like Glassfish.


Sources and tools:



Get Wildfly

Download latest Wildfly server: http://wildfly.org/downloads/


Unzip it and launch the server in standalone mode:

$wildfly/bin/standalone.sh


You can test the server on http://localhost:8080


Enable remote access

By default you can only access your server locally. You need to adjust the binding interface and hostname.


Quick settings

Since there are a lot of files to edit you can use sed. See below for detail explanations.

## Adjust binding
# replace '172.16.100.61' by your own IP @
# 
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/domain/configuration/host.xml
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone.xml
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone-ha.xml
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone-full.xml
sed 's/127.0.0.1/172.16.100.61/g' -i $wildfly/standalone/configuration/standalone-full-ha.xml

## Adjust hostname
# replace 'myServer' by your real server name (FQDN)
#
sed 's/localhost/myServer/g' -i $wildfly/domain/configuration/host.xml
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone.xml
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone-ha.xml
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone-full.xml
sed 's/localhost/myServer/g' -i $wildfly/standalone/configuration/standalone-full-ha.xml


Relaunch the server:

# Stop server
$wildfly/bin/jboss-cli.sh --connect command=:shutdown
# start server
$wildfly/bin/standalone.sh


You should see the following logs:

...
Undertow HTTP listener default listening on /172.16.100.61:8080
...
Http management interface listening on http://172.16.100.61:9990/management
Admin console listening on http://172.16.100.61:9990
...


Manual settings

Bind interface

Edit your configuration file

vim $wildfly/domain/configuration/host.xml


Adjust the bindings:

<interfaces>
   <interface name="management">
       <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
   </interface>
   <interface name="public">
       <inet-address value="${jboss.bind.address:127.0.0.1}"/>
   </interface>
   <interface name="unsecure">
        <!-- Used for IIOP sockets in the standard configuration. To secure JacORB you need to setup SSL -->
        <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
   </interface>
</interfaces>

Replace 127.0.0.1 by the IP you'd like to use, ex: 192.168.1.100.


Set hostname

Edit your configuration file

vim $wildfly/standalone/configuration/standalone.xml


Adjust the hostname:

<host name="default-host" alias="localhost">
     ....
</host>

replace localhost by your server name (FQDN), ex: nuc-media-center.daxiongmao.eu


Create administrative users

There is no users by default. You must create one.


Launch the creation script:

$wildfly/bin/add-user.sh


What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a): a


Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin


The username 'admin' is easy to guess
Are you sure you want to add user 'admin' yes/no? yes


Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
 - The password should be different from the username
Password : secret


What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:


About to add user 'admin' for realm 'ManagementRealm'
Is this correct yes/no? yes


Is this new user going to be used for one AS process to connect to another AS process? 
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? no


Now you can access the administrative pages: http://localhost:9990/



Firewall

Edit your firewall configuration and add:

##### Input
$IPTABLES -A INPUT -p tcp --dport 8080 -j ACCEPT   # HTTP alt.
$IPTABLES -A INPUT -p tcp --dport 8443 -j ACCEPT   # HTTPS alt.
$IPTABLES -A INPUT -p tcp --dport 9990 -j ACCEPT   # Wildfly administration


##### Output
$IPTABLES -A OUTPUT -p tcp --dport 8080 -j ACCEPT   # HTTP alt.
$IPTABLES -A OUTPUT -p tcp --dport 8443 -j ACCEPT   # HTTPS alt.
$IPTABLES -A OUTPUT -p tcp --dport 9990 -j ACCEPT   # Wildfly administration


Stop server (cmd line)

$wildfly/bin/jboss-cli.sh --connect command=:shutdown


Create datasource

Source: http://www.techpaste.com/2014/05/08/how-to-configure-datasource-in-jboss-wildfly/

Download the latest JDBC drivers:


Register driver

  • Go to Runtime >> Server >> Manage Deployments
  • Click on "Add" to deploy the MySQL driver.

Wildfly driver registration


You must enable the driver.

  • Select the new driver
  • Click on "En/Disable"


Wildfly driver enable


Now the driver is ready to be used.


Create datasource

  • Go to Configuration >> Datasource >> Manage Deployments
  • Click on "Add" to deploy the MySQL driver.


Wildfly datasource menu


Fill up the form like this:


Wildfly datasource creation 1/3

>> JNDI name must be: java:/jbdc/datasourceName


Wildfly datasource creation 2/3

>> You must use com.mysql.jdbc.Driver_x_y


Wildfly datasource creation 3/3

  • Connection URL: jdbc:mysql://localhost:3306/AppDS
  • Username: db_user
  • Password: secret

Don't forget to adjust the server, database & user names.


Now you can enable the datasource:

Wildfly datasource enable