Copyright © 2006-2007
Zusammenfassung
Dies sind die Release Notes für die JBoss Enterprise Application Platform 4.2 Release, in denen Sie brandaktuelle und wichtige Informationen finden
Suchen Sie nach einem leistungsfähigen Tool zur Entwicklung qualitativ hochwertiger Web 2.0 Anwendungen auf einer reinen Java Plattform?
JBoss Enterprise Application Platform 4.2 is the next evolutionary step in open source enterprise software.
Es besteht vollständige Kompatibilität mit existierenden J2EE 1.4 Java Anwendungen für den Unternehmensbereich.
Außerdem werden fast alle wichtigen Features und in der Java EE 5.0 Spezifikation definierten Komponenten unterstützt. Ihre neuen Enterprise Java Anwendungen können also sofort die Vorteile des wesentlich einfacheren, POJO-basierten Programmiermodells von Java EE 5.0 nutzen.
Durch Integration der besten Open Source Bezugssysteme -- wie etwa JBoss Seam, Hibernate, Tomcat und JBoss Cache -- nutzt die JBoss Enterprise Application Platform die Vorteile von Innovationen der 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 dies bedeutet, dass Sie bei der Entwicklung Ihrer neuen Anwendung sofort auf die Vorteile der Java EE 5.0 Technologien zugreifen können und die Gewissheit haben, dass diese auch mit zukünftigen Versionen der JBoss Platform kompatibel bleiben werden.
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 der Zip-Distribution ist die Dokumentation für die Plattform und deren einzelne Komponenten in einer separaten Zip-Datei mit Namen jboss-eap-docs-4.2.0-1.ep1.1.zip enthalten.
Bei einem Linux-System befindet sich die Dokumentation in zwei rpms, die manuell installiert werden müssen. Diese rpms sind jboss-seam-docs-1.2.0-1.AP.ep1.11.noarch.rpm und rh-eap-docs-4.2.0-1.ep1.5.noarch.rpm. Hilfen zur Installation von rpm-Paketen bei Red Hat Enterprise Linux finden Sie im Red Hat "Knowledge Base"-Artikel unter 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
Eine Liste der enthaltenen Dokumentation finden Sie in der index.html Datei des Dokumentationsverzeichnisses. Beachten Sie bitte auch die Release Notes für JBoss AS 4.2 unter JBOSS_DIST/jboss-as/readme.html.
Falls Sie die rpm- oder die zip-Distribution verwenden, so beachten Sie bitte, dass in der Standardeinstellung die Authentifikation aktiviert ist und keine Benutzerkonten eingerichtet sind. Dies ist der Fall, damit kein unberechtigter Zugriff auf die verschiedenen Dienste des JBoss AS erfolgen kann. Informationen dazu, wie erneut auf diese Dienste zugegriffen werden kann, finden Sie im Installationshandbuch oder unter http://kbase.redhat.com/faq/FAQ_107_9963.shtm.
Es wird empfohlen, die in der Dokumentation enthaltenen Beispiel-"Seam"-Anwendungen mit der Produktionskonfiguration auszuführen. Die Verwendung einer anderen Konfiguration kann zu den in Deployment von SEAM-Beispielen führt zu java.lang.OutOfMemoryError: PermGen space beschriebenen Speicherproblemen führen. Beachten Sie, dass die Standardkonfiguration beim Start des Servers die Produktionskonfiguration ist, wenn keine andere Konfiguration festgelegt wurde.
Bitte beachten Sie, dass die eingebettete "Hypersonic Database" zwar als Technologie-Vorschau enthalten, jedoch nicht bei der Verwendung in Produktionsumgebungen unterstützt wird. Technischer Support ist für diese Komponente nicht verfügbar, und während wir uns zwar über Meldungen zu Fehlern an dieser Komponente freuen, können wir uns nicht auf deren Behebung innerhalb eines bestimmten zeitlichen Rahmens festlegen.
Nachfolgend sehen Sie eine Liste der zum Zeitpunkt der Release bekannten Probleme. Einzelheiten dazu finden Sie unter JIRA.
Das Deployment einiger MBeans schlägt fehl (mit Fehlermeldungen).
Fehler, ähnlich dem Folgenden erscheinen 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
Auf die Integration der Fehlerbehebung wird derzeit noch gewartet.
Zu diesem Zeitpunkt keine. Portal 2.6 kann auf 4.2 deployt werden, jedoch sind nicht alle Features verfügbar.
JBoss AS 4.2.0.GA kann einer NetBeans 5.5 Server-Liste nicht hinzugefügt werden, da es nicht aufgefunden wird.
Dies wurde in einer späteren Version von NetBeans behoben. JBoss 4.2.0 wird durch NetBeans 5.5.1 RC1 und späteren Versionen erfolgreich aufgefunden.
Falls es nicht möglich ist, NetBeans 5.5.1 RC 1 oder eine spätere Version zu verwenden, fügen Sie eine leere Datei mit dem Namen resolver.jar in $JBOSS_HOME/lib/endorsed hinzu. Dadurch wird der Server in NetBeans 5.5 aufgefunden.
In der SEAM Application Platform Distribution werden zwei SEAM-Beispiele mitgeliefert. Außerdem stehen weitere Beispiele in seam/examples zur Verfügung. Ein Versuch, alle diese Beispiele zu deployen führt dazu, dass der PermGen-Platz des Servers aufgebraucht wird. Der Server kann nicht länger verwendet werden und muss durch ausdrücklichen "kill"-Befehl beendet werden.
Das Starten des Servers mit dem production-Profil löst dieses Problem.
Wenn JBoss AS als Dienst auf Linux gestartet wurd, so schlägt der Start des HSQL Datenbank-Managers fehl. Unter server.log erscheint ein Fehler ähnlich dem Folgendem:
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)
Der HSQL Datenbank-Manager startet, wenn JBoss AS unter Verwendung von run.sh gestartet wird.
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.
Wenn der JON-Agent auf einer Windows-Box läuft und der JON-Server auf einer Linux-Box, so werden keine Instrumentierungsanweisungen zu Tomcat angezeigt.
Sie können diesen Anweisungen zur Instrumentierung von Tomcat zur Überwachung folgen:
Konfigurieren Sie eingebettetes Tomcat 6.0 JBoss für die Überwachung
HINWEIS: Wenn Sie JON's internes Tomcat überwachen, so sind diese Schritte nicht notwendig.
Um die Überwachung von Tomcat-Servern und Diensten zu aktivieren, muss der Tomcat-Server unter Verwendung eines Filters zur Sammlung von Metriken und einer Webapp instrumentiert werden, um die metrischen Daten an JON zu liefern. Die Web-Anwendung, der Filter und weitere Jars werden in das Agent-Verzeichnis JONs unter product_connectors\servlet gepackt. Alle Befehle unten sollten von diesem Verzeichnis aus herausgegeben werden.
Der erste Schritt, um Tomcat überwachbar zu machen ist die Installation von Filter und Webapp. Diese werden zum Sammeln interner Tomcat-Metriken verwendet.
Kopieren Sie libs\hq-filter.jar %JBOSS_HOME%\server\{default | all|\deploy\jboss-web.deployer
Anschließend deployen Sie die jbnem-monitor webapp in Ihrem JBoss-Server:
xcopy /E jbnem-monitor %JBOSS_HOME%\server\{default | all}\deploy\jboss-web.deployer\..\jbnem-monitor.war\
Zuletzt muss noch der Filter aktiviert werden. Folgendes muss %JBOSS_HOME%\server\{default | all}\deploy\jboss-web.deployer\conf\web.xml hinzugefügt werden. Vergessen Sie nicht, das jeder "Tag"-Typ gemeinsam gruppiert werden muss.
<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>
Wenn eine Methode eines JSF-"Backing Beans", das die Injection eines EJB3-Beans oder ein Bean-Interface erfordert, aufgerufen wird, wird eine Ausnahme aufgerufen: 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.
Es existieren zwei verfügbare Methoden, um dies zu umgehen. Die eine ist es, einen expliziten JNDI-Lookup zu verwenden. Um ein Beispiel hierfür zu sehen, schauen Sie sich den Code für die TodoBean in der ejb3jsf-Beispielanwendung an, die Teil der Dokumentation ist. Die andere Hilfskonstruktion ist es, das Seam-Framework zu verwenden, um EJB3-Beans in den Web-Tier zu bringen. Sehen Sie sich hierzu die seam-Beispielanwendung in der enthaltenen Dokumentation an.
More information on the workaround is available in the Getting Started Guide in the included documentation.
Bestimmte Code-Umschaltzeichen führen mit PostgreSQL 8.2 zu einer Ausnahme, wenn als "LIKE"-Ausdruck verwendet.
Es gibt bestimmte "Code-Umschaltzeichen", die Sie zu Gunsten der Portabilität zwischen verschiedenen Datenbankanbietern vermeiden sollten. Der Backslash ('\') zum Beispiel besitzt eine besondere Bedeutung bei PostgreSQL (und möglicherweise anderen Datenbanken) und kann nicht in einer Escape-Sequenz verwendet werden wie dies bei anderen Datenbanken der Fall sein kann. Stattdessen sollten Sie ein Code-Umschaltzeichen wählen, dass bei allen Datenbanken sicher ist, etwa das "Pipe"-Symbol ('|').
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.