Copyright © 2006-2007
Abstract
These are the Release Notes for the JBoss Enterprise Application Platform 4.2 Release, containing late breaking and important information
Looking for a powerful tool for developing rich, high performance, Web 2.0 applications on a pure Java Platform?
JBoss Enterprise Application Platform 4.2 is the next evolutionary step in open source enterprise software.
It provides complete compatibility with existing J2EE 1.4 enterprise Java applications.
At the same time, almost all the key features and components defined in the Java EE 5.0 specification are supported. So your new enterprise Java applications can take immediate advantage of the Java EE 5.0's significantly simpler POJO-based programming model.
Further, by integrating best-of-breed open source frameworks -- such as JBoss Seam, Hibernate, Tomcat, and JBoss Cache -- the JBoss Enterprise Application Platform takes advantage of innovations in the open source community.
As well, JBoss Enterprise Application Platform 4.2 is fully tested and supported by Red Hat, and is certified to work on many leading enterprise hardware and software products.
All of which means you can develop your new application taking advantage of Java EE 5.0 technologies immediately and with the confidence of knowing it will remain forward-compatible with future versions of the JBoss Platform.
http://www.redhat.com/support/process/
http://www.redhat.com/support/policy/soc/production
http://www.redhat.com/support/policy/sla/production/
http://www.redhat.com/support/policy/soc/developer/
http://www.redhat.com/support/policy/sla/developer/
http://www.redhat.com/security/updates/jboss_notes/
In the zip distribution, documentation for the Platform and its individual components is distributed in a separate zip file, jboss-eap-docs-4.2.0-1.ep1.1.zip.
On a Linux system, the documentation is found in two rpms that will need to be installed manually. These rpms are jboss-seam-docs-1.2.0-1.AP.ep1.11.noarch.rpm, and rh-eap-docs-4.2.0-1.ep1.5.noarch.rpm. For help with installing rpm packages on Red Hat Enterprise Linux, please refer to the Red Hat Knowledge base article located at http://kbase.redhat.com/faq/FAQ_35_198.shtm
Updated versions of the documentation may be accessed via the web from http://www.redhat.com/docs
See the index.html file in the documentation directory for a list of included documentation. Please also refer to the release notes for JBoss AS 4.2, located at JBOSS_DIST/jboss-as/readme.html.
If you are using the rpm, or the zip distribution, please note that by default, authentication is enabled and no user accounts are set up. This is done to prevent unauthorized access to various services of JBoss AS. Please refer to the Installation Guide, or see http://kbase.redhat.com/faq/FAQ_107_9963.shtm for information on how to make the services accessible again.
It is recommended to run the example Seam applications that are included with the documentation using the production configuration. Using another configuration may result in memory issues, as described in Deploying SEAM examples results in java.lang.OutOfMemoryError: PermGen space . Note that the default configuration for the server to start with, if no other configuration is specified, is the production configuration.
Please note that the embedded Hypersonic Database is included as a technology preview and is not supported for use in production environments. Technical support is not available for this component, and while we are happy to accept bugs filed against this component, we do not make any commitment to fix them within a specific timeframe.
Following is a list of known issues at the time of release. Further details on these issues can be found in JIRA.
Deploying SEAM examples results in java.lang.OutOfMemoryError: PermGen space
HSQL Database Manager does not start when JBoss AS is run as a service under Linux
Desktop shortcut to shutdown server does not work when minimal configuration is started
Tomcat instrumenting instructions don't show up when managed by a windows agent
Deployment of some MBeans fails with errors.
Errors similar to the following appear in server.log:
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/portal-core]] Error configuring application listener of class org.apache.myfaces.webapp.StartupServletContextListener java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener
Currently awaiting incorporation of bug fixes.
None at this time. Portal 2.6 can deploy on 4.2, but not all features work.
JBoss AS 4.2.0.GA cannot be added to a NetBeans 5.5 server list, as it is not detected.
This has been fixed in a later version of NetBeans. JBoss 4.2.0 is successfully discovered by NetBeans 5.5.1 RC1 and higher.
If it is not possible to use NetBeans 5.5.1 RC 1 or higher, add an empty file named resolver.jar to $JBOSS_HOME/lib/endorsed. This will enable the detection of the server by NetBeans 5.5.
There are two SEAM examples that are provided with the SEAM Application Platform distribution. Additionally, there are several examples provided in seam/examples. Attempting to deploy all the examples, causes the server's PermGen space to be exhausted. The server is no longer usable and must be killed by an explicit "kill" command.
Starting the server with the production profile will solve this problem.
When JBoss AS is started as a service on Linux, the HSQL Database Manager fails to start. An error similar to the following is observed in server.log:
2007-05-17 12:15:29,113 ERROR [org.jboss.jdbc.HypersonicDatabase] Failed to star
t database manager
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.jdbc.HypersonicDatabase$1.run(HypersonicDatabase.java:517)
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which r
equires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:1
59)
at java.awt.Window.<init>>(Window.java:317)
at java.awt.Frame.<init>(Frame.java:419)
at javax.swing.JFrame.<init>(JFrame.java:194)
at org.hsqldb.util.DatabaseManagerSwing.main(Unknown Source)
HSQL Database Manager starts if JBoss AS is started using run.sh
When JBoss AS has been started using the minimal configuration, the desktop shortcut to shutdown the server results in a verbose error message.
This is expected behaviour for the server. The Server Shutdown desktop shortcut and the shutdown script both rely on the jmx-invoker-service.xml service. As this is not enabled in the minimal configuration these two methods cannot be used to shut down the server. The server may be started manually at a command line and the Ctrl-C key combination used to stop it in this case.
When the JON agent is running on a windows box and the JON server on a Linux box, instructions showing how to instrument Tomcat don't show up.
You can follow these instructions to instrument Tomcat for monitoring:
Configure Tomcat 6.0 JBoss embedded for Monitoring
NOTE: If you are monitoring JON's internal Tomcat, these steps are not necessary.
To enable monitoring of Tomcat servers and services the Tomcat server must be instrumented using a filter to collect metrics and a webapp to deliver the metric data into JON. The web application, filter and any additional jars are packaged in the JON agent directory under product_connectors\servlet. All commands below should be issued from this directory.
The first step to making Tomcat monitorable is to install the filter and webapp. These are used to collect internal Tomcat metrics.
copy libs\hq-filter.jar %JBOSS_HOME%\server\{default | all|\deploy\jboss-web.deployer
Next, deploy the jbnem-monitor webapp in your JBoss server:
xcopy /E jbnem-monitor %JBOSS_HOME%\server\{default | all}\deploy\jboss-web.deployer\..\jbnem-monitor.war\
Finally, the filter must be enabled. The following must be added to %JBOSS_HOME%\server\{default | all}\deploy\jboss-web.deployer\conf\web.xml. Keep in mind that each tag type must be grouped together.
<filter>
<filter-name>JMXFilter</filter-name>
<filter-class>net.hyperic.hq.product.servlet.filter.JMXFilter</filter-class>
<!-- Uncomment the following line to enable response time logging.
The directory you specify as the param can include properties
referenced from the System.properties of the vm.
The ResponseTime log file will by default store the last 1 hour's
worth of response time data. This file gets truncated as soon as
data is succesfully sent into the server. The file is named uniquely
for each webapp in the form: yourContextName_JBNEMResponseTime.log
If this fragment is included in the global web.xml for the container,
all webapps in it will generate response time data, and have logs
following the format described above. You can enable it individually
on each webapp as well if you dont want every webapp to generate
response time data
-->
<!--
<init-param>
<param-name>responseTimeLogDir</param-name>
<param-value>%JBOSS_HOME%\jboss-as\server\{default | all}\log</param-value>
</init-param>
-->
<!-- these are optional parameters which you can override to optimize logging -->
<!--
<init-param>
<param-name>bufferSize</param-name>
<param-value>8k</param-value>
</init-param>
<init-param>
<param-name>bufferTime</param-name>
<param-value>1h</param-value>
</init-param>
-->
</filter>
<filter-mapping>
<filter-name>JMXFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>net.hyperic.hq.product.servlet.filter.JMXSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>JMXWebappMetricServlet</servlet-name>
<servlet-class>net.hyperic.hq.product.servlet.filter.JMXFilterInitServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
When a method of a JSF backing bean requiring the injection of an EJB3 bean or bean interface is called, it invokes an exception: ERROR [JBossInjectionProvider] Injection failed on managed bean.
JBoss AS 4.2 is fully compatible with Java 1.4 EE applications, and provides extended functionality via an EJB3 plugin. Injections and annotations currently only function within the EJB3 plugin.
There are two available methods to work around this. One is to use an explicit JNDI lookup. To see an example of this, refer to the code for the TodoBean in the ejb3jsf example application included with the documentation. The other workaround is to utilize the Seam framework to get EJB3 beans in the web tier. Refer to the seam example application in the included documentation.
More information on the workaround is available in the Getting Started Guide in the included documentation.
Certain escape characters, when used in a LIKE expression, cause an exception to occur with PostgreSQL 8.2.
There are certain "escape characters" you'll want to avoid in the interest of portability amongst different database vendors. The back-slash ('\'), for example, has special meaning on PostgreSQL (and possible other databases as well) and cannot be used in an escape sequence as it can on other databases. Instead, chose an escape character that is reasonably safe on all databases, like a "pipe" ('|').
There are a number of issues in the EJB3 implementation in this release that need to be understood when developing for the platform. A summary of the issues with a link to further information follows.
EJBTHREE-899 - WebServiceRef injection from deployment descriptor does not work.
EJBTHREE-900 - Injection of WebServiceContext doesn't work.
EJBTHREE-896 - Specifying an interceptor-order in ejb-jar.xml also creates a new instance of the interceptor.
EJBTHREE-985 - env-entry-value is optional (16.4.1.3 last paragraph).
EJBTHREE-989 - Can't inject resources of type URL.
EJBTHREE-967 - Injection of ORB doesn't work (EJB3 16.13).
EJBTHREE-724 - persistence.xml jar-file processing (EJB3 6.2.1.6).
EJBTHREE-757 - getMessageContext Not Implemented.