JBoss Enterprise Application Platform

Release Notes 4.2.0

Abstract

These are the Release Notes for the JBoss Enterprise Application Platform 4.2 Release, containing late breaking and important information


1. Introduction to the JBoss Enterprise Application Platform
2. Product Support and License Website Links
3. Included Documentation
4. Default Security Settings
5. Running the example Seam Applications
6. Embedded Hypersonic Database Technology Preview
7. Known Issues with this release

1.  Introduction to the JBoss Enterprise Application Platform

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.

2.  Product Support and License Website Links

Support Processes

http://www.redhat.com/support/process/

Production Support Scope of Coverage

http://www.redhat.com/support/policy/soc/production

Production Support Service Level Agreement

http://www.redhat.com/support/policy/sla/production/

Developer Support Scope of Coverage

http://www.redhat.com/support/policy/soc/developer/

Developer Support Service Level Agreement

http://www.redhat.com/support/policy/sla/developer/

Product Update and Support Policy by Product

http://www.redhat.com/security/updates/jboss_notes/

JBoss End User License Agreement

http://www.redhat.com/licenses/jboss_eula.html

3.  Included Documentation

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.

4.  Default Security Settings

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.

5.  Running the example Seam Applications

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.

6.  Embedded Hypersonic Database Technology Preview

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.

7.  Known Issues with this release

Following is a list of known issues at the time of release. Further details on these issues can be found in JIRA.

JBoss portal deployment from 2.4.1.SP1 built with jdk1.4 fails to deploy in platform edition, which runs with jdk1.5.
Issue

Deployment of some MBeans fails with errors.

Additional Information

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

Status

Currently awaiting incorporation of bug fixes.

Workaround

None at this time. Portal 2.6 can deploy on 4.2, but not all features work.

Further Information

JBPAPP-59

NetBeans 5.5 does not detect JBoss AS 4.2.0.GA
Issue

JBoss AS 4.2.0.GA cannot be added to a NetBeans 5.5 server list, as it is not detected.

Status

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.

Workaround

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.

Further Information

JBPAPP-84

Deploying SEAM examples results in java.lang.OutOfMemoryError: PermGen space
Issue

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.

Workaround

Starting the server with the production profile will solve this problem.

Further Information

JBPAPP-66

HSQL Database Manager does not start when JBoss AS is run as a service under Linux
Issue

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) 

Workaround

HSQL Database Manager starts if JBoss AS is started using run.sh

Further Information

JBPAPP-180

Desktop shortcut to shutdown server does not work when minimal configuration is started
Issue

When JBoss AS has been started using the minimal configuration, the desktop shortcut to shutdown the server results in a verbose error message.

Cause

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.

Further Information

JBPAPP-163.

Tomcat instrumenting instructions don't show up when managed by a windows agent
Issue

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.

Workaround

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>
Further Information

JBPAPP-210

@EJB injection does not work in JSF backing beans
Issue

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.

Cause

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.

Workaround

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.

Further Information

More information on the workaround is available in the Getting Started Guide in the included documentation.

Query using Escape syntax in LIKE expression with PostgreSQL 8.2 results in PSQLException: The column index is out of range
Issue

Certain escape characters, when used in a LIKE expression, cause an exception to occur with PostgreSQL 8.2.

Workaround

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" ('|').

Further Information

JBPAPP-219.

EJB3 related issues in this release
Issue

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.

Further Information

  • 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.