JBoss

From Wiki RB4

Introduction

JBoss 7

JBoss Application Server 7, is a fast, powerful, implementation of the Java Enterprise Edition 6 specification. The state-of-the-art architecture built on the Modular Service Container enables services on-demand when your application requires them. There two modes: standalone and domain, which is a group of servers.

Overview of implemented Standards

see https://docs.jboss.org/author/display/AS7/Getting+Started+Guide

Extensions

An extension is a module that extends the core capabilities of the server. The JBoss Application Server 7 core is very simple and lightweight; most of the capabilities people associate with an application server are provided via extensions. An extension is packaged as a module in the modules folder. The user indicates that they want a particular extension to be available by including an <extension/> element naming its module configuration file.

JBoss < 7

The following components are part of the JBoss application server:

  • Hibernate?
  • Tomcat

Installation

Home PC New

see here

HP EBS Laptop

see here

VServer

see here

Configuration

JBoss 7

  • use <JBOSS_HOME>\bin\jboss-admin.bat or Web Console
  • stored in <JBOSS_HOME>\standalone\configuration\standalone.xml
  • for Axis2 see here

Database Configuration

Datasources are configured through the datasource subsystem. Declaring a new datasource consists of two separate steps: You would need to provide a JDBC driver and define a datasource that references the driver you installed. There is a datasource 'ExampleDS' coming together with the installation.

  • copy mysql-connector-java-5.1.18-bin.jar to <JBOSS_HOME>\standalone\deployments or using deployment via Web console and enable it (e.g. on HomePC New)
  • use Web console -> Profile (not Runtime) and add datasource MySQLDS with JNDI name java:jboss/datasources/MySQLDS and UwesWikiDS with JNDI name java:jboss/datasources/UwesWikiDS, select the MySQL Driver above, enter connection info (JBoss > 7.0.0 do not allow empty passwords, so change standalone configuaration file and restart server) => configuration is saved in standalone configuration file <JBOSS_HOME>\standalone\configuration\standalone.xml

Enabling Remote Access

<interface name="management">
  <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>
<interface name="public">
  <inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>

Set Timeout for JBoss client

e.g. for deployments set in jboss-cli.xml

<connection-timeout>10000</connection-timeout>

Enabling access.log

<access-log pattern="%h %l %u %t %r %s %b %{User-Agent}i %{JSESSIONID}c" prefix="access"/>

creates folder default-host below the log directory with a file named access<DATE>.

Logging Configuration

The overall server logging configuration is represented by the logging subsystem. It consists of three notable parts: handler configurations, logger and the root logger declarations (aka log categories). It is defined in standalone configuration file, e.g. via the web administratio console.

<subsystem xmlns="urn:jboss:domain:logging:1.1">
  ...
</subsystem>

Output goes to:

  • C:\Uwes\Programme\Java\JBoss\jboss-eap-6.1.0\jboss-eap-6.1\standalone\log
  • Z:\usr\share\jboss7\standalone\log\
  • /usr/local/share/jboss/jboss-eap-6.1/standalone/log/ Server4You

server.log and boot.log. Some entries can be modified by the Admin console -> Profile -> Core -> Logging. ] It is also possible to put all logging configuration information into the application, like for uweheuer.


The other standalone configuration file is under $JBOSS_HOME/standalone/configuration/logging.properties.

According to here added logger category uweheuer and adjusted formatter pattern.

Apache configuration

For connecting to Apache acting as proxy add to standalone.xml JBoss configuration file:

<connector name="ajp" protocol="AJP/1.3" socket-binding="ajp" enabled="true"/>

<socket-binding name="ajp" port="8009"/>

Apache Configuration on HomePC see here

JBoss < 7

The JBoss Enterprise Application Platform ships with four different server configurations. Within the jboss-4.2.2.GA/server directory, you will find four subdirectories: minimal, default, production and all - one for each server configuration. Each of these configurations provide a different set of services. The default configuration is the one used if you don’t specify another one when starting up the server. If you want to know which services are configured in each of these instances, look at the jboss-service.xml file in the jboss-4.2.2.GA/server/<instance-name>/conf/ directory and also the configuration files in the jboss-4.2.2.GA/server/<instance-name>/deploy directory. The directory server configuration you’re using, is effectively the server root while JBoss is running. It contains all the code and configuration information for the services provided by the particular server configuration. It’s where the log output goes, and it’s where you deploy your applications.

  • in <JBOSS_HOME_423> and <JBOSS_HOME_422>\server\default\conf\jboss-service.xml from 1099 to 1499 because of exception at startup
  • in <JBOSS_HOME_423>\bin\run.bat Zeile 66 JAVA_OPTS um -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=128m ergänzt um die OutOfMemory Exception des PermGen aufzuschieben
  • copy <JBOSS_HOME_423>\bin\run.bat to <JBOSS_HOME_423>\bin\run_debug.bat and decomment line 93 with debug options and suspend=n
  • rename jboss-log4j.xml in jboss-log4j.xml.sik and copy jboss-log4j.xml from C:\Uwes\jboss\jboss-4.2.3.GA\server\default\conf to C:\Uwes\eclipse\workspace\seaminaction\opt\jboss-as-4.2.2.GA\server\default\conf
  • change port in <JBOSS_HOME_422>\server\default\deploy\jboss-web.deployer\server.xml 8080 -> 8088
  • for Axis2 see here

Database configuration

  • mysql-connector-java-5.1.5-bin.jar nach <JBOSS_HOME>\server\default\lib kopiert
  • The uweheuer data sources a configured via files e.g. mysql-ds.xml in the deploy directory <JBOSS_HOME>\server\default\deploy. The datasource is bound to the JNDI name e.g. java:/DefaultDS (s. JPA configuration).

Operation

CLI

Command Line interface (examples see build file of uweheuer):

  • Operation requests is considered a raw low level way to manage things. Normally, for convenience and friendliness users would use
  • Commands instead

Examples:

[standalone@localhost:9999 /] /subsystem=logging/root-logger=ROOT:change-root-log-level(level=DEBUG)
{"outcome" => "success"}
[standalone@localhost:9999 /] /deployment=*:read-resource

Start the server

JBoss < 7

  • HomePCNew
  • on Windows systems: <JBOSS_HOME>/bin/run.bat
  • on Linux systems: <JBOSS_HOME>/bin/run.sh > /dev/null &

JBoss 7

Windows
  • by cmd line: <JBOSS_HOME>\bin\MyStandalone.bat (s. also Dienste)
  • by eclipse Window -> Show View -> Other -> Other -> Server -> Servers
Ubuntu
  • on HomePC: /etc/init.d/jboss7 start

Start the server for debugging

  • <JBOSS_HOME>/bin/run_debug.bat
  • for HP EBS laptop see here

Stop the server

JBoss < 7

  • Windows: <JBOSS_HOME>/bin/MyShutdown.bat
  • Linux-Standard is <JBOSS_HOME>/bin/shutdown.sh --server=localhost
  • on HOME PC because of service installation: manual start or stop in terminal with sudo /etc/init.d/jboss [start|stop]

JBoss 7

Windows
  • if started in cmd shell just press CTRl+C
Ubuuntu
  • on HomePC: /etc/init.d/jboss7 stop
HomePC New

Deployment of Applications

JBoss < 7

  1. copy the ear file to <JBOSS_HOME>/server/<CONFIGURATION>/ directory
  2. it will be expanded to <JBOSS_HOME>/server/<CONFIGURATION>/tmp/deploy/...


JBoss 7

  • copy war file to <JBOSS_DIR>\standalone\deployments or
  • deployement via CLI (see uweheuer generantion)
  • copy extracted war file to <JBOSS_DIR>\standalone\deployments and create empty file <WAR_FILENAME>.dodeploy

Start the Hypersonic (HSQL) Database Manager

  • start JBoss JMX Console
  • follow link database=localDB,service=Hypersonic
  • search startDatabaseManager() and press Invoke
  • new client start after some seconds

JBoss applications

EJB Trail Tutorial

  1. download EJB3Trail.ear from http://www.jboss.com/docs/trailblazer and copied to deploy directory

TestWebApplication

  1. jsf

TestEJBApplication

  1. EJBs

ticket2rock

  • download from http://www.ejb3buch.de/
  • ant
  • copy /build/ticket2rock.ear to <JBOSS_HOME_DEPLOY_DIR>
  • läuft nicht unter 4.2.3

Seam In Action Example

  • C:\Uwes\eclipse\workspace\seaminaction>ant quickstart
  • C:\Uwes\eclipse\workspace\seaminaction>ant -f stages/projects-part3/open18/build.xml explode
  • runs as open18

Seam Registration Example

  • cd C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\registration
  • ant
    • copies C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\registration\dist\jboss-seam-registration.ear to <JBOSS_HOME_DEPLOY_DIR>
  • runs

Seam Messages Example

  • cd C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\messages
  • ant
    • copies C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\messages\dist\jboss-seam-messages.ear to <JBOSS_HOME_DEPLOY_DIR>
  • runs

Seam Booking Example

  • cd C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\booking
  • ant
    • copies C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\booking\dist\jboss-seam-booking.ear to <JBOSS_HOME_DEPLOY_DIR>
  • runs

Seam Todo List Example

  • cd C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\todo
  • ant
    • copies C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\todo\dist\jboss-seam-todo.ear to <JBOSS_HOME_DEPLOY_DIR>
  • runs

Seam Numberguess Example

  • cd C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\numberguess
  • ant
    • copies C:\Uwes\eclipse\workspace\jboss-seam-2.0.2.SP1\examples\numberguess\dist\jboss-seam-numberguess.ear to <JBOSS_HOME_DEPLOY_DIR>
  • runs

State

  • Version 5 installed but uweheuer doesn't work => deinstalled
  • Version 4.2.2 installed but WebTestApplication doesn't work => deinstalled
  • Version 4.2.3: Seam Examples, WebTestApplication, TestEJBApplication, uweheuer work, ticket2rock does not