Oracle GlassFish Server 3.0.1 Release Notes

Chapter 1 Oracle GlassFish Server 3.0.1 Release Notes

GlassFish Server 3.0.1 provides a lightweight, modular server for the development of Java Platform Enterprise Edition (Java EE) 6 applications and Java Web Services. It delivers enterprise performance, scalability, and reliability.

For production deployments, consider Oracle GlassFish Server with Oracle Premier Support for Software. Premier Support helps lower the total cost and risk of owning your Oracle solutions, improve the return from your IT investment, and optimize the business value of your IT solutions. Benefits of Premier Support include product updates and enhancements, global reach, lifetime support, ecosystem support, and proactive, automated support.

For issues with GlassFish Server Open Source Edition, the GlassFish Server Community can offer help.

These Oracle GlassFish Server 3.0.1 Release Notes contain important information about the GlassFish Server 3.0.1 release, including information about new features, hardware and software requirements, and known issues with workarounds, if available.

Refer to this document prior to installing, configuring, or using Oracle GlassFish Server 3.0.1 software. Consult this document periodically to view the most up-to-date product information.

Revision History

This section lists the revision history for the Oracle GlassFish Server 3.0.1 Release Notes.

Table 1–1 Revision History

Date 

Description of Changes 

June 2010 

Initial release of GlassFish Server 3.0.1 

December 2010 

Updated links to documentation, feedback, and support URLs. Added issue #7002834 to the Known Issues section. 

What’s New in the Oracle GlassFish Server 3.0.1 Release?

This section describes the following new features in GlassFish Server 3.0.1:

Support for Java EE Profiles

Java EE 6 introduces the concept of profiles. A profile is a collection of Java EE technologies and APIs that address specific developer communities and application types.

The following profiles are implemented through the distributions of Oracle GlassFish Server 3.0.1:

Java EE 6 SDK distributions are available from the Java EE 6 SDK downloads page.

For the list of APIs in each profile, see Java EE 6 Standards.

Modular Design

In GlassFish Server version 3.0.1, the GlassFish Server code was split into modules to provide flexibility and improved runtime performance. The modular architecture is implemented on top of OSGi Alliance standards and enables reusability of GlassFish Server 3.0.1 modules as well as other modules.

This design change allows use of only those modules that you require for the applications deployed. Runtime is used only for applications that use it, and upgrades can be implemented without a complete system reinstallation. This change minimizes startup times, memory consumption, and disk space requirements.

The modular design provides the ability to do the following:

Support for Extending GlassFish Server

A new Oracle GlassFish Server 3.0.1 container System Provider Interface (SPI) defines interfaces that a container developer must implement so that GlassFish Server can call into it at appropriate times. This change enables GlassFish Server users to customize GlassFish Server by adding administrative commands and graphical add-on components.

GlassFish Server also provides streamlined support of new module types, such as Ruby on Rails.

Update Tool Integration

Update Tool is now embedded in the Oracle GlassFish Server 3.0.1 Administration Console. This tool facilitates managing add-on components and related applications that are available for extending GlassFish Server 3.0.1 functions.

The Administration Console provides access to the Update Tool page through the navigation tree. The Update Tool page provides tabs to display the following:

Integration of Update Tool in the Administration Console enables administrators to easily extend GlassFish Server and view available updates. A standalone version of Update Tool is also available using the updatetool command. For more information about Update Tool, see Update Tool in Oracle GlassFish Server 3.0.1 Administration Guide.


Note –

You cannot perform updates to existing components using the Update Tool interface directly from within the GlassFish Server Administration Console. To update or remove installed components, you must use the standalone command-line version or the pkg command.


Update Tool is developed through the Update Center project. The Administration Console uses the Update Center 2.3 API to display a list of available components, versions, and dates. For information about Update Center 2.3, see the Release Notes for Update Center 2.3 .


Note –

Update Tool differs from the older Upgrade Tool, which is used to migrate the configuration and deployed applications from an earlier version of GlassFish Server to the current version. For more information about Upgrade Tool, see the Oracle GlassFish Server 3.0.1 Upgrade Guide.


Support for Scripting Languages

To facilitate rapid application development and deployment, Oracle GlassFish Server 3.0.1 supports a variety of scripting languages. The use of scripting languages enables GlassFish Server to be applied beyond developments that are centered on Java technology. Supported scripting languages include the following:

The components for integrating scripting languages with GlassFish Server are available through Update Tool.

Note that scripting languages are not covered under an Oracle GlassFish Server license and support offering.

Web Services Interoperability Technologies (WSIT) Support

Oracle is working closely with Microsoft to ensure interoperability of Web services enterprise technologies such as message optimization, reliable messaging, and security. WSIT is a product of this joint effort. WSIT is part of Metro 2.0, a high-performance, extensible web service stack that offers interoperability with Microsoft .NET 3.5. Metro 2.0 is included in the full distribution of GlassFish Server 3.0.1.

WSIT is an implementation of a number of open web services specifications to support enterprise features. In addition to message optimization, reliable messaging, and security, WSIT includes a bootstrapping and configuration technology. Starting with the core XML support currently built into the Java platform, WSIT uses or extends existing features and adds new support for interoperable web services, including:

Enhancements to the appclient Utility

The appclient utility has been enhanced in GlassFish Server 3.0.1, as follows:

For more information, see the appclient(1M) man page.

EclipseLink Integration

Oracle GlassFish Server 3.0.1 uses EclipseLink as its Java Persistence API (JPA) 2.0 provider. EclipseLink is also the Reference Implementation for JSR 317. For the most recent information regarding EclipseLink functionality, see the EclipseLink 2.0 Release Notes.

Move of HTTP Service Settings to Network Service

In Oracle GlassFish Server 3.0.1, most HTTP Service settings have been moved into the new Network Service configuration. For more information, see the Oracle GlassFish Server 3.0.1 Upgrade Guide.

Changes Related to Administrator Authentication

In Oracle GlassFish Server 3.0.1, you are not prompted for administration credentials by default. This is a change from previous releases.

If you install GlassFish Server using the ZIP file, you will not be prompted for administration credentials when you launch the Administration Console or use the asadmin utility and remote subcommands to perform administrative tasks.

If you install GlassFish Server 3.0.1 using the self-extracting file and graphical installer, you will not be prompted for administration credentials unless you specified a user name and password on the Administration Settings page during installation. If you accepted the defaults on that page, the default administrative user is admin and the password field is left empty.

If there is only one admin user with no password, unauthenticated logins are permitted. For more information about administrator authentication, see To Log In to a Domain in Oracle GlassFish Server 3.0.1 Administration Guide.

Administrator authentication requirements can be changed after GlassFish Server has been installed. For information about using the Administration Console to perform this and related tasks, see the Administration Console online help. For information about using the command-line interface, see Administering Passwords in Oracle GlassFish Server 3.0.1 Administration Guide.

Changes Related to the asadmin Utility

The behavior of the asadmin utility has been modified to emphasize the distinction between options for the asadmin utility itself and options for its subcommands. Options for the asadmin utility itself are now allowed before the subcommand. However, for compatibility with other releases, options for the asadmin utility itself are still allowed after the subcommand, but such syntax is deprecated.

For more information, see Using the asadmin Utility in Oracle GlassFish Server 3.0.1 Administration Guide.

Changes Related to File Layout

Oracle GlassFish Server 3.0.1 includes the following file layout changes from previous releases:

Changes Related to Ant Tasks and the asant Utility

Oracle GlassFish Server 3.0.1 provides server-specific Ant tasks, for which Ant must be installed. The asant utility is not included in the release.

GlassFish Server is compatible with Apache Ant versions 1.6.5 or greater. If Ant is not installed, you can install it using Update Tool.

For more information about Update Tool, see Update Tool in Oracle GlassFish Server 3.0.1 Administration Guide. For more information about Ant tasks, see Chapter 3, Using Ant with GlassFish Server, in Oracle GlassFish Server 3.0.1 Application Development Guide.

Changes Related to domain.xml Validation

Because Oracle GlassFish Server 3.0.1 is modular and extensible, the domain.xml file cannot be validated against a static DTD file. Instead, the domain.xml file is validated against @Configured annotations in the source code. For more information about the structure of the domain.xml file, see the Oracle GlassFish Server 3.0.1 Domain File Format Reference.

Changes Related to Applications

Application-related differences exist between GlassFish Server 3.0.1 and GlassFish Server v2. This section describes some of those differences.

force Option

The default value of the force option for deployment is false in GlassFish Server 3.0.1. This default value was true in GlassFish Server v2. In GlassFish Server 3.0.1 you must explicitly set the option to true for redeployment. This option is not automatically set during the upgrade process. The purpose of this change is to avoid accidentally overwriting the contents of an existing application. This applies to both the Administration Console and command-line utility.

The asadmin redeploy command is also new in GlassFish Server 3.0.1 and offers an equivalent to --force=true. The force option is only applicable to the deploy command (command-line interface) and the deploy screen (console), not to the redeploy command and redeploy screen.

Applications and Generated Directory Layout

GlassFish Server v2 contained two subdirectories for the applications repository: applications/j2ee-apps and applications/j2ee-modules. Those subdirectories no longer exist in GlassFish Server 3.0.1 (there is no j2ee-apps or j2ee-modules level). Deployment of a standalone module such as foo.war, which was previously located in applications/j2ee-modules/foo in GlassFish Server v2, is now located in applications/foo in GlassFish Server 3.0.1. Enterprise applications and standalone modules essentially share the same name space, so the intermediate directory layer was not necessary.

domain.xml application Element

Previous elements such as web-module, ejb-module, and so on are deprecated in GlassFish Server 3.0.1 and replaced with the new application element. For more information about the application element, see application in Oracle GlassFish Server 3.0.1 Domain File Format Reference.

During an upgrade, GlassFish Server v2 applications are redeployed at the new applications/ location with the new application element in domain.xml. Any new applications deployed on GlassFish Server 3.0.1 will be deployed with the new directory structure and element.

Stricter JAR Visibility Rules

Java EE 6 imposes stricter JAR visibility rules than did Java EE 5. As a result, some older applications might fail.

The Java EE 6 specification imposes strict rules about which JAR files are visible from an enterprise archive (EAR) file. Refer to section EE.8.3.3; specifically, application client modules should not have access to any EJB JAR file unless the application client JAR file's manifest Class-Path refers to the EJB JAR file(s) explicitly.

This is a change from GlassFish Server v2, in which application clients automatically had access to all EJB JAR files in the EAR file and all JAR files at the top level of the EAR file. To comply with the stricter specification language, GlassFish Server 3.0.1 cannot automatically provide application clients with access to these JAR files.

This new, stricter behavior imposed by Java EE 6 can be addressed as follows:

This change in behavior is also discussed in Chapter 1, GlassFish Server Compatibility Issues, in Oracle GlassFish Server 3.0.1 Upgrade Guide.

Application Client deploy --retrieve and get-client-stubs Commands

In Oracle GlassFish Server 3.0.1, running the deploy --retrieve and get-client-stubs commands no longer downloads just one JAR file to your local directory as in GlassFish Server v2. While localdir/myAppClient.jar is still created in GlassFish Server 3.0.1 and can be used as a target in the appclient command, another directory is also created, localdir/myAppClient, which in turn might contain other files.

If you typically copy the single GlassFish Server v2 downloaded JAR file as a way to move the application client components from one place to another, that will not work in GlassFish Server 3.0.1. The supported method is to use the asadmin get-client-stubs command for that purpose. For more information about the command, see get-client-stubs(1).

If you still choose to copy, however, you must copy not only the localdir/myAppClient.jar file (as in GlassFish Server v2), but also all of the contents of the localdir/myAppClient directory.

Hardware and Software Requirements

This section lists the requirements that must be met before installing the Oracle GlassFish Server 3.0.1 product.

Supported Platforms

Complete information about supported operating environments and hardware for GlassFish Server is available in the Oracle GlassFish Server Certification Matrix.

System Virtualization Support

System virtualization is a technology that enables multiple operating system (OS) instances to execute independently on shared hardware. Functionally, software deployed to an OS hosted in a virtualized environment is generally unaware that the underlying platform has been virtualized. Oracle performs testing of its Oracle Java System products on select system virtualization and OS combinations to help validate that the Oracle Java System products continue to function on properly sized and configured virtualized environments as they do on non-virtualized systems.

For information about Oracle support for Oracle Java System products in virtualized environments, see the Oracle GlassFish Server Virtualization Support matrix.

Required Disk Space

Your temporary directory must have enough free space for the installation of the following software:

Required Free Ports

You must have seven unused ports available. The installation program automatically detects ports that are in use and suggests currently unused ports for the default settings. The initial default port assignments are listed in the following table. If these default port numbers are in use, the installation program assigns a randomly selected port number from the dynamic port range. The selected port number might not be the next available port number.

Table 1–2 Default Port Assignments for GlassFish Server 3.0.1

Port Number 

Usage 

4848 

Administration Console 

8080 

HTTP 

8081 

HTTPS 

8686 

Pure JMX clients 

3700 

IIOP 

3820 

IIOP/SSL 

3920 

IIOP/SSL with mutual authentication 

Important Patch Information

If you are using the Solaris 10 operating system, you must apply the appropriate patch for your platform as listed in Table 1–3.

Table 1–3 GlassFish Server 3.0.1 Solaris Patch Requirements

Platform 

Patch Number 

SPARC platform 

119963-08  

x86 platform 

119964-08 

You must also ensure that the Oracle recommended patch cluster is applied. These patches and the patch cluster are available from the SunSolve program web site.

Required JDK Version

Installation of Oracle GlassFish Server 3.0.1 requires JDK release 6.

The minimum (and certified) version of the JDK software that is required for GlassFish Server depends on the operating system:

Complete information about supported JDK versions for GlassFish Server is available in the Oracle GlassFish Server Certification Matrix.

Path Settings for the JDK Software

The following binary files that are used with GlassFish Server must come from the JDK software, not the Java Runtime Environment (JRE) software:

To meet this requirement, ensure that the bin directory of the JDK software precedes the bin directory of the JRE software in your path.

Supported JDBC Drivers and Databases

All supported configurations of the Oracle GlassFish Server 3.0.1 must contain at least one combination of database and driver from the Oracle GlassFish Server Certification Matrix. In addition, GlassFish Server is designed to support connectivity through Java DataBase Connectivity (JDBC) technology to any additional database management system (DBMS) with a corresponding driver that supports the JDBC API (JDBC driver).

Supported Browsers

The Oracle GlassFish Server Certification Matrix lists supported browsers and versions.

mod_jk Support

Oracle GlassFish Server 3.0.1 supports mod_jk 1.2.x, with a minimum of version 1.2.26.

Known Issues

This section describes known issues in Oracle GlassFish Server 3.0.1 and any available workarounds.

[OWSM] Interop Metro-WLS:NPE WSSECURTIYTOKEN NULL for WSSE:SECURITYTOKENREFERENCE (Issue 9716247)

Description

There is an issue with web services communication between GlassFish Server Metro and Oracle WebLogic Server when using the Oracle Web Services Manager (OWSM) wss11_saml_token_with_message_protection_service_policy policy.

Workaround

The fix for this problem is in Oracle WebLogic Server 11.1.1.4.0. See the Oracle WebLogic product page for more information.

[JDK_Issue] SSLHandshakeException when using JDK1.6.0_20 (Issue 12041)

Description

SSL renegotiation fails against JDK 1.6.0_20, but works with JDK1.6.0_18. An exception similar to the following is written to the system.log file:


[#|2010-05-25T13:57:34.512-0700|WARNING|glassfish3.0.1|com.sun.grizzly. \
config.GrizzlyServiceListener|_ThreadID=24;_ThreadName=Thread-1; \
|processorTask.exceptionSSLcert javax.net.ssl.SSLHandshakeException: \
renegotiation is not allowed

This is a known issue caused by the disabling of SSL renegotiation in JDK 6u19 and above. Previously, GlassFish Server was able to perform SSL renegotiation for client certificates through the default HTTPS port (8181). However, a security vulnerability with SSL renegotiation surfaced, and SSL renegotiation was disabled in JDK 6u19.

The security vulnerability was in the TLS protocol (TLS 1.0 or later and SSLv3), and it was discovered that this vulnerability may allow an unauthenticated, remote attacker to conduct man-in-the-middle (MITM) type of attacks, where plain text may be injected as a prefix in a user's TLS session. More details about this vulnerability are available at http://extendedsubset.com/?p=8.

An interim fix was made in JDK 6u19 that disables TLS/SSL renegotiation in the Java Secure Sockets Extension (JSSE) by default. This stops the MITM attack, but applications that require the TLS/SSL renegotiation will not work. The remaining and real fix for this will be done in JDK 6u22. For more information about this, see http://blogs.sun.com/security/entry/vulnerability_in_tls_protocol_during.

Workaround

JDK 6u19 provides a new system property, called sun.security.ssl.allowUnsafeRenegotiation, that enables TLS/SSL renegotiation. For more information, see http://java.sun.com/javase/javaseforbusiness/docs/TLSReadme.html. Setting this property to true in GlassFish Server GlassFish enables the renegotiation. However, it also makes GlassFish Server once again vulnerable to MITM attack.

[JDK_Issue] Performance degradation caused by invoking setSoLinger or setReuseAddress (Issue 7109)

Description

When the setSoLinger method or the setReuseAddess method is invoked, performance is degraded and the following exception is thrown:


[#|2009-01-26T00:33:56.325-0800|WARNING|sun-appserver9.1|
javax.enterprise.system.container.web|_ThreadID=17;
_ThreadName=SelectorReaderThread-8084;
_RequestID=11ae0030-c392-4217-8408-cfa7efe0a879;|setSoLinger
exception
java.net.SocketException: Invalid argument

This issue is caused by an issue with the JDK software. This issue is resolved in JDK version 7.

For more information, see Issue report 7109.

Workaround

None.

[JDK_Issue] IO exception: invalid argument during longevity test (Issue 7529)

Description

During an HTTP longevity test, the following exception is thrown 42 hours into the run:


[#|2009-04-05T17:41:26.537-0700|SEVERE|glassfish|javax.enterprise.system.core|
_ThreadID=15;_ThreadName=Thread-1;|doSelect
exception
java.io.IOException: Invalid argument

The instance and application are still accessible during the run.

This issue is caused by an issue with the JDK software. This issue is resolved in JDK version 7.

For more information, see Issue report 7529.

Workaround

None.

[JDK_Issue] Richaccess: java.io.IOException: Invalid argument from doSelect (Issue 8573)

Description

The following exception is seen:


[#|2009-06-20T06:05:57.942-0700|SEVERE|glassfish|
com.sun.grizzly.config.GrizzlyServiceListener|
_ThreadID=21;_ThreadName=Thread-2;|doSelect
IOException
java.io.IOException: Invalid argument

This is a JDK issue, scheduled to be fixed in JDK 1.6.0_18.

For more information, see Issue report 8573.

Workaround

Increase the maximum number of file descriptors to 10000 or greater (the default on Solaris is 64000). Once JDK 1.6.0_18 becomes available, install it.

GlassFish Server 3.0.1 on HP-UX when using jdk 1.6.0.07 (Issue 12206)

Description

Additional configuration information is required when running GlassFish Server 3.0.1 on HP-UX using 64–bit JDK 1.6.0.07. Specifically, the -client option must be replaced with -d64 in the <jvm-options/> section in the domain.xml file.

Workaround

You can add the -d64 JVM option directly to the domain.xml file. Alternatively, you can use the as-install/bin/asadmin command to add and remove JVM options. In both cases, after making the changes, the GlassFish Server domain must be restarted.

ProcedureTo Change JVM Options Using the asadmin Command

  1. Start the GlassFish Server domain.


    as-install/bin/asadmin start-domain
    
  2. Delete the -client JVM option.


    as-install/bin/asadmin delete-jvm-options "-client"
    
  3. Create the -d64 JVM option.


    as-install/bin/asadmin create-jvm-options "-d64"
    
  4. Stop and restart the GlassFish Server domain.


    as-install/bin/asadmin stop-domain
    as-install/bin/asadmin start-domain

GF b22 failed to startup with JRockit jrmc-4.0.0-1.6.0 (Issue 12265)

Description

GlassFish Server fails to start with JRockit Mission Critical Console 4.0.0-1.6.0 (JDK 1.6.0_17). Errors similar to the following are displayed at domain startup:

./asadmin start-domain
Waiting for DAS to start .Error starting domain: domain1.
The server exited prematurely with exit code 1.
Before it died, it produced the following output:

[WARN ][jrockit] MaxPermSize=192m ignored: Not a valid option for JRockit
[WARN ][jrockit] NewRatio=2 ignored: Not a valid option for JRockit
Unknown option or illegal argument: -XX:+LogVMOutput.
Please check for incorrect spelling or review documentation of startup options.

Could not create the Java virtual machine.

Command start-domain failed.

Workaround

Comment out the following two jvm-options in the domain.xml file for the domain:

For example:


<!-- <jvm-options>-XX:+LogVMOutput</jvm-options> -->
<!-- <jvm-options>-XX:LogFile=${com.sun.aas.instanceRoot}/logs/jvm.log</jvm-options> -->

File permissions on domain /applications directory can cause NullProcessException (Issue 6545)

Description

If a domain's /applications directory restricts access, or if you use directory deployment from a restricted directory, the server cannot read the files in the expanded directory. A NullProcessException error occurs during deployment.

For more information, see Issue report 6545.

Workaround

Change the file access settings for such directories to grant the server permission to read the directory contents.

Windows installation log file is not readable (Issue 4881)

Description

The time-stamp-install.log file cannot be read, because all lines written to the file are concatenated into a single long string.

For more information, see Issue report 4881.

Workaround

Use a different editor, and manually open the installation log file created under the %TEMP% directory.

Uninstallation fails on Windows 7 because of missing JDK error (Issue 12093)

Description

Uninstallation of GlassFish Server may fail on Windows 7 systems because Windows cannot find the required JDK installation. The problem may occur when the Java binaries are not installed through a standard Java SDK installer.

Workaround

Explicitly specify the location of the Java binaries when running the GlassFish Server uninstall utility from the command line. For example:


uninstall.exe -j "C:\Program Files\Java\jre6"

Access to statistics for new virtual servers requires server restart (Issues 6238 and 6422)

Description

Monitoring statistics about newly added virtual servers are available only after the server is restarted.

For more information, see the reports for Issue 6238 and Issue 6422.

Workaround

After adding a virtual server, restart the server to view monitoring data for the virtual server.

[Open Installer] Option -l to relocate log files ignored on Windows (Issue 10693)

Description

Option -l to relocate log files is ignored when used with options -a and -s and the log files are created in the default location.

For more information, see Issue report 10693.

Workaround

None.

Issues occur with ZIP distribution if UAC enabled on Windows Vista (Issue 10755)

Description

Some features will not work well on Windows Vista with User Account Control (UAC) enabled. One example is the Administration Console, which cannot be launched.

For more information, see Issue report 10755.

Workaround

Disable UAC and reboot.

Null pointer exception thrown from com.sun.xml.wss.NonceManager.getInstance (Issue 11138)

Description

Testing a JAX-RPC web service, with GlassFish message security provider enabled, throws the following exception in the server logs:


[#|2009-11-23T11:16:58.375+0005|SEVERE|glassfishv3.0|
javax.enterprise.resource.webservices.rpc.server.http|_ThreadID=25;_
ThreadName=http-thread-pool-8080-(2);|caught
throwable
java.lang.RuntimeException: com.sun.enterprise.security.jauth.AuthException

The default value of the nonce property does not work.

For more information, see Issue report 11138.

Workaround

To use message security with JAX-RPC web services, disable the nonce property in the configuration. See the Issue report for the complete steps for the workaround.

[Open Installer] Start menus not displayed and then empty on Windows Vista and Windows 2008 (Issue 5087)

Description

The Start menu group for GlassFish Server is not displayed after installation is first completed. If you log out and then log back in, the menu group is displayed but it is empty.

For more information, see Issue report 5087.

Workaround

None.

When specj application is deployed, asadmin get --monitor=true "server.*" results in I/O error (Issue 11163)

Description

The command asadmin get -m "server.*" returns all monitoring data pertaining to that server. When many applications are deployed, the amount of data is quite large and could take a long time to return. The client might time out with the following client-side error:


./asadmin get --monitor=true "server.*"
I/O Error: Read timed out
Command get failed.

For more information, see Issue report 11163.

Workaround

Minimize the amount of data that is returned to the client.

  1. Run the asadmin list -m "server.*" command, which returns the top-level elements.

  2. Select the top-level element for which details are needed, and use this as a filter. For example:


    > ./asadmin list -m "server.*"
    ...
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-cache
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods.
    create-int-int-[Lorg\.spec\.jappserver\.supplier\.helper\.ComponentOrder
    
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods.
    findByPrimaryKey-java\.lang\.Integer
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods.generateXml
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods.getEJBLocalHome
    ...
    
    >./asadmin get -m
    "server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods.*"
    ...
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods.remove.
    methodstatistic-name
    = MethodStatistic
    server.applications.SPECjAppServer.supplier\.jar.POEnt.bean-methods.remove.
    methodstatistic-starttime
    = 1259604209775
    ...

Standalone Update Tool fails with segmentation fault on Solaris (Issue 11222)

Description

The standalone Update Tool started with the updatetool command fails with a segmentation fault on Solaris when installing add-on components.

For more information, see Issue report 11222.

Workaround

Ensure that your system conforms to the standalone Update Tool patch requirements as defined in the Update Center Release Notes.

Update Tool functionality in the Administration Console uses a different Java-based Update Center API and is not affected by this issue.

Ruby applications deployed on context root don't work with Admin Console (Issue 10854)

Description

If a Ruby application is deployed at contextroot '/' and the Administration Console is then accessed, accessing the Ruby application produces a 404 error.

For more information, see Issue report 10854.

Workaround

None.

Java EE 6 Managed Bean support not available in app clients launched using Java Web Start (Issue 11257)

Description

When using Java Web Start to launch an application client, any managed beans in the application client will not be recognized.

For more information, see Issue report 11257.

Workaround

Launch the application client using the appclient script. Managed beans in the application client will be supported normally.

Warning messages when invoking appclient script on Mac OS X with Apple Java implementation (Issue 8644)

Description

When you invoke the appclient script on Mac OS X systems with Java from Apple installed, the following stack trace is seen twice (only the first few lines are shown here):


Intentionally suppressing recursive invocation exception!
java.lang.IllegalStateException: recursive invocation
    at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1394)
    at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1377)
    at sun.security.jca.ProviderConfig$1.run(ProviderConfig.java:64)
...

For more information, see Issue report 8644.

Workaround

None needed.

Despite the warning messages, the client will be launched successfully and run normally. These errors are from an issue in the Apple Java implementation.

Launching an app client can give ClassNotFound error for the client's main class (Issue 11181)

Description

A problem occurs when all of the following are true:

Attempts to launch the application client fail with the following error because one file generated on the server is placed in the wrong server directory and overwrites another generated file:


java.lang.ClassNotFoundException:(main-class-for-the-client)

For more information, see Issue report 11181.

Workaround

Change the name of the application client so it is not myAppClient.jar; specifically:

  1. Edit myApp/META-INF/application.xml so that the declaration of the client is <java>myClient.jar</java>. Note that you can use any name other than myAppClient.jar.

  2. Rename the directory myApp/myAppClient_jar to myApp/myClient_jar. Note that the client's subdirectory name must be the same as the application client URI in the application.xml file, with the .jar replaced with _jar.

  3. Deploy the application:


    asadmin deploy --retrieve localdir myApp
    
  4. Run the application client:


    appclient -client localdir/myAppClient.jar
    

Change to log file location requires server restart to take effect (Issue 11142)

Description

Changes to server log values on the General tab of the Logger Settings page in the Administration Console do not immediately take effect.

For more information, see Issue report 11142.

Workaround

Restart the server. All changes to the values on this page require a server restart to take effect.

Unable to open installation log files using links on the Summary screen on Linux and Mac OS (Issue 6621)

Description

Installation log files cannot be opened by clicking the links on the Summary page that displays at the end of the installation process in the graphical installer.

For more information, see Issue report 6621.

Workaround

Access the files manually. The names of the installation log and summary files are timestamp-install.log and timestamp-install-summary.html. On Linux and Mac systems these files are generated under the $TMP directory.

updatetool command does not work if you reinstall into the same install directory on Windows (Issue 8233)

Description

If you reinstall GlassFish Server (with Update Tool) in the same installation directory with the same defaults and invoke Update Tool using the updatetool command, you receive a message saying that Update Tool is not installed and are asked if you want to install it. This occurs on Windows systems only.

For more information, see Issue report 8233.

Workaround

Following uninstallation, manually remove the remaining .org* directory before reinstalling.

[Update Center] Non-user directory access fails (Update Center Issue 1583)

Description

This issue occurs intermittently on Windows and Mac OS systems. pkg(5) does not work on certain systems at certain times.

For more information, see Update Center Issue 1583.

Workaround.

None.

Inline help and CLI man page list incorrect servlet version 2.4 in X-Powered-By (Issue 11011)

Description

The inline help and CLI man page list servlet 2.4 in the X-Powered-By field. The correct version is servlet 3.0.

For more information, see Issue report 11011.

Workaround

None.

[Embedded] Deployment of application containing activation-1.1.jar fails when using uber-jar (Issue 11149)

Description

When using embedded with glassfish-embedded-all-3.0-b73.jar, deployment fails with the following error:


SEVERE: WEB9051: Error trying to scan the classes at
/private/var/folders/CV/CVhj8DvqEwGK5bdJKK9TaE   TI/-Tmp-
/gfembed6991712842235699248tmp/applications/xwiki-enterprise-web-2.0/
WEB-INF/lib/activation-1.1.jar for annotations in which a 
ServletContainerInitializer has expressed interest
java.util.zip.ZipException: error in opening zip file

The issue occurs because embedded uses a folder with plus signs (+), and plus signs in a path are converted into space characters " " when the path is decoded.

For more information, see Issue report 11149.

Workaround

A system property has been added that enables you to place temporary directories. The property is glassfish.embedded.tmpdir and can be set so the temporary domain directory is not placed in the user directory.

create-service fails to create service without AS_ADMIN_USER in passwordfile on Solaris (Issue 11119)

Description

create-service fails to create service without AS_ADMIN_USER in passwordfile on Solaris.

For more information, see Issue report 11119.

Workaround

None.

[Monitoring] Extra monitoring view for connector-connection-pools not available (Issue 11256)

Description

GlassFish Server uses a tree structure to track monitorable objects. Within that tree, the following view is not available to obtain connection pool statistics:

server.connector-service.resource-adapter-name.connection-pool-name.* or server.jms-service.connection-factories.connection-factory-name.* (for jms-ra-related pools).

For more information, see Issue report 11256.

Workaround

Use the server.resources.* view to obtain the statistics.

For more information about Monitoring, see Chapter 8, Administering the Monitoring Service, in Oracle GlassFish Server 3.0.1 Administration Guide.

[EclipseLink] Issues with ElementCollections of embeddables (EclipseLink Issue 296606)

Description

With weaving enabled, updates on an element collection of embeddables can potentially throw a null pointer exception.

For more information, see EclipseLink Issue report 296606.

Workaround

Two workarounds are available:

  1. Add the annotation @ChangeTracking(DEFFERED) on the embeddable and set the property eclipselink.weaving.internal to false.

    or

  2. Set the following properties to false in persistence XML: eclipselink.weaving.changetracking and eclipselink.weaving.internal.

Virtual server started twice (Issue 11195)

Description

After starting the domain and accessing localhost:4848, the following messages are seen in the server log:


[#|2009-11-27T16:21:57.091+1100|INFO|glassfishv3.0|
javax.enterprise.system.container.web.com.sun.enterprise.web|
_ThreadID=20;_ThreadName=Thread-1;|Created
virtual server server|#]

[#|2009-11-27T16:21:57.091+1100|INFO|glassfishv3.0|
javax.enterprise.system.container.web.com.sun.enterprise.web|
_ThreadID=20;_ThreadName=Thread-20;|Created
virtual server server|#]

These messages give the impression that the virtual server, server, was started twice. This is not the case. Virtual servers are only started once, but messages are logged multiple times.

For more information, see Issue report 11195.

Workaround

None.

Problems debugging JPA (Issue 11274)

Description

Debugging JPA is difficult because of limited messages from the server.

For more information, see Issue report 11274.

Workaround

Add the property org.eclipse.persistence.session.level=INFO to the logging.properties file. You can then use the Administration Console to control EclipseLink loggers.

EJB interop for remote EJBs broken when target EJB is on the same host (Issue 11152)

Description

EJB interoperability for remote EJBs is broken when the target EJB is on the same host (another GlassFish Server domain or another GlassFish Server 3.0.1 instance).

For more information, see Issue report 11152.

Workaround

Set the following property in jvm-options:

-Dorg.glassfish.orb.iiop.orbserverid=:

Cannot send JMS messages between systems (Issue 11254)

Description

By default, the default host name for the JMS service on GlassFish Server is localhost. To access the JMS service from another system, however, you must change the host name. You can change it to either the actual host name or to 0.0.0.0.

For more information, see Issue report 11254.

Workaround

To make the change, do one of the following:

  1. Use the Administration Console: Expand the Configuration, Java Message Service, and JMS Hosts nodes, select default_JMS_host, and edit the Host field.

    or

  2. Use an asadmin subcommand such as the following:

    • asadmin set server-config.jms-service.jms-host.default_JMS_host.host="0.0.0.0"

    • asadmin set server-config.jms-service.jms-host.default_JMS_host.host="hostname"

Windows system menu is empty (Issue 11239)

Description

When GlassFish Server is installed using the graphical installer, the installation completes successfully but only the top-level GlassFish Server v3 entry is added in the Windows system menu, and it is empty. This issue occurs with both the localized and English installers.

For more information, see Issue report 11239.

Workaround

None.

Embedded ACC overly strict on current thread context class loader (Issue 11427)

Description

The ACC expects the current thread's context class loader to be an ACCClassLoader. This is overly restrictive. Although this condition is met for appclient script and Java Web Start launches, it might not be met for the embedded case. Other functions inside the ACC require the class loader to be a URLClassLoader (or an instance of a subclass of URLClassLoader), but the loader does not need to be an ACCClassLoader.

For more information, see Issue report 11427.

Workaround

Two workarounds are available:

  1. Set -Djava.system.class.loader=org.glassfish.appclient.client.acc.ACCClassLoader.

    or

  2. In your Java program, instantiate an ACCClassLoader and set it to be the current thread's context class loader using Thread.currentThread().setContextClassLoader before using the embedded ACC classes and interfaces.

EJB Timer Service config issue for MySQL (Issue 11428)

Description

Able to create and store EJB timer in MySQL as user, but when trying to configure EJB Timer Service for MySQL, get the following exception (SQLException executing statement):


"CREATE TABLE EJB__TIMER__TBL (TIMERID
VARCHAR(255) NOT NULL, BLOB BLOB(64000), INITIALEXPIRATIONRAW BIGINT, SCHEDULE
VARCHAR(255), INTERVALDURATION BIGINT, OWNERID VARCHAR(255), STATE INTEGER,
LASTEXPIRATIONRAW BIGINT, PKHASHCODE INTEGER, CREATIONTIMERAW BIGINT,
CONTAINERID BIGINT, PRIMARY KEY (TIMERID))":
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in
your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'BLOB BLOB(64000), INITIALEXPIRATIONRAW BIGINT,
SCHEDULE VARCHAR(255), INTERVALDU' at line 1|#]

For more information, see Issue report 11428.

Workaround

Make sure that the datasource-classname specified for the timer pool represents an XA DataSource.

MySQL-specific steps:

  1. Unpack glassfishv3/glassfish/lib/install/applications/ejb-timer-service-app.war.

  2. Add the following to WEB-INF/classes/__ejb_timer_mappings.xml after <persistence-unit-metadata>:

    <persistence-unit-defaults>
    <delimited-identifiers/>
    </persistence-unit-defaults>
  3. Repackage the WEB-INF/classes/__ejb_timer_mappings.xml file.

  4. (This step required only if the current installation has already used the EJB Timer Service.) Manually create the EJB__TIMER__TBL in the database using this create statement:

    CREATE TABLE `EJB__TIMER__TBL` (`TIMERID` VARCHAR(255) NOT NULL,
    `BLOB` BLOB(64000), `INITIALEXPIRATIONRAW` BIGINT, `SCHEDULE` VARCHAR(255),
    `INTERVALDURATION` BIGINT, `OWNERID` VARCHAR(255), `STATE` INTEGER,
    `LASTEXPIRATIONRAW` BIGINT, `PKHASHCODE` INTEGER, `CREATIONTIMERAW` BIGINT,
    `CONTAINERID` BIGINT, PRIMARY KEY (`TIMERID`))

deploy subcommand fails against secure server (Issue 11439)

Description

The deploy subcommand fails against a secure server unless the --secure option is used.

For more information, see Issue report 11439.

Workaround

Use the --secure option when issuing the deploy subcommand against a secure server.

Expired certificate in GlassFish Server truststore (Issue 6852796)

Description

One of the authority certificates in the GlassFish Server truststore expired on January 7, 2010. The certificate is cacerts.jks. An error message is generated on startup indicating that the certificate has expired:


Version: V1
  Subject: OU=Secure Server Certification Authority, O="RSA Data Security, Inc.", C=US
  Signature Algorithm: MD2withRSA, OID = 1.2.840.113549.1.1.2

  Key:  SunPKCS11-Solaris RSA public key, 1000 bits (id 17891456, session object)
  modulus:
  public exponent:
  Validity: [From: Tue Nov 08 19:00:00 GMT-05:00 1994,
               To: Thu Jan 07 18:59:59 GMT-05:00 2010]
  Issuer: OU=Secure Server Certification Authority, O="RSA Data Security, Inc.", C=US
  SerialNumber: [    02ad667e 4e45fe5e 576f3c98 195eddc0]

For more information, see Issue report 6852796.

Workaround

The expired authority certificate was removed in update 18 of Java SE 6. It will also be removed from the GlassFish Server truststore in a future update.

You can ignore the error messages and use the update, or you can eliminate the error messages. To stop receiving the error messages, use keytool to remove the certificate from the GlassFish Server truststore:


=> cd domains/domainX/config
=> cp cacerts.jks cacerts.jks.save
=> keytool -delete -keystore cacerts.jks -alias verisignserverca
Enter keystore password:

To prevent the expired certificate from reappearing in subsequently created domains, the certificate should also be removed from the template truststore:


=> cd glassfish/lib/templates
=> cp cacerts.jks cacerts.jks.save
=> keytool -delete -keystore cacerts.jks -alias verisignserverca
Enter keystore password:

For more information about the keystore password, see the information about master passwords and keystores in Authentication in Oracle GlassFish Server 3.0.1 Administration Guide.

GlassFish V3 should allow multiple applications with the same context root (7002834)

Description

The Domain Administration Server (DAS) in versions of GlassFish Server prior to version 2.1.1 did not allow multiple applications to be deployed using the same web context root, even if those applications were targeted for different GlassFish Server instances.

This behavior was changed in GlassFish Server 2.1.1 and has been carried forward to version 3.0.1. The GlassFish Server DAS now supports the deployment of applications using the same context root as long as those applications are deployed to different GlassFish Server instances. However, this new DAS support is not sufficiently documented.

Solution

Web Module Deployment Guidelines in Oracle GlassFish Server 3.0.1 Application Deployment Guide states:

Context Root. When you deploy a web module, if you do not specify a context root, the default is the name of the WAR file without the .war extension. The web module context root must be unique within the server.

Similarly, endpoint-address-uri in Oracle GlassFish Server 3.0.1 Application Deployment Guide states:

For servlet endpoints, this value is relative to the web application context root. For EJB endpoints, the URI is relative to root of the web server (the first portion of the URI is a context root). The context root portion must not conflict with the context root of any web application deployed to the same web server.

While both statements are technically accurate, it is useful to add the following further clarification:

The DAS in GlassFish Server versions 2.1.1, 3.0.1, and later support the deployment of multiple web applications using the same web context root as long as those applications are deployed to different GlassFish Server instances. Deploying multiple applications using the same context root within a single GlassFish Server instance will produce a DAS error.

Restrictions

This section describes the following Oracle GlassFish Server 3.0.1 restrictions:

Unsupported Options in asadmin Commands

The help for asadmin commands describes some options that are not supported by Oracle GlassFish Server 3.0.1. For example:

If you specify an unsupported option, a syntax error does not occur. Instead, the command runs successfully, and the unsupported option is silently ignored.

No Support for Client VM on Windows AMD64

By default, GlassFish Server uses Client VM to achieve best startup and deployment performance. If you are using Windows AMD64, edit the domain.xml file to remove the line <jvm-options>–client<jvm-options>. In this case, JVM ergonomics chooses the appropriate kind of VM for the given platform.

For more information about platform support, see Ergonomics in the 5.0 Java Virtual Machine.

GlassFish Server Documentation Set

Listed below are the titles and short descriptions of the books in the GlassFish Server documentation set.

Table 1–4 Books in the GlassFish Server Documentation Set

Book Title 

Description 

Release Notes

Provides late-breaking information about the software and the documentation and includes a comprehensive, table-based summary of the supported hardware, operating system, Java Development Kit (JDK), and database drivers. 

Quick Start Guide

Explains how to get started with the GlassFish Server product. 

Installation Guide

Explains how to install the software and its components. 

Upgrade Guide

Explains how to upgrade to the latest version of GlassFish Server. This guide also describes differences between adjacent product releases and configuration options that can result in incompatibility with the product specifications. 

Administration Guide

Explains how to configure, monitor, and manage GlassFish Server subsystems and components from the command line by using the asadmin(1M) utility. Instructions for performing these tasks from the Administration Console are provided in the Administration Console online help.

Application Deployment Guide

Explains how to assemble and deploy applications to the GlassFish Server and provides information about deployment descriptors. 

Your First Cup: An Introduction to the Java EE Platform

For beginning Java EE programmers, provides a short tutorial that explains the entire process for developing a simple enterprise application. The sample application is a web application that consists of a component that is based on the Enterprise JavaBeans specification, a JAX-RS web service, and a JavaServer Faces component for the web front end. 

Application Development Guide

Explains how to create and implement Java Platform, Enterprise Edition (Java EE platform) applications that are intended to run on the GlassFish Server. These applications follow the open Java standards model for Java EE components and application programmer interfaces (APIs). This guide provides information about developer tools, security, and debugging. 

Add-On Component Development Guide

Explains how to use published interfaces of GlassFish Server to develop add-on components for GlassFish Server. This document explains how to perform only those tasks that ensure that the add-on component is suitable for GlassFish Server.

Embedded Server Guide

Explains how to run applications in embedded GlassFish Server and to develop applications in which GlassFish Server is embedded.  

Scripting Framework Guide

Explains how to develop scripting applications in such languages as Ruby on Rails and Groovy on Grails for deployment to GlassFish Server. 

Troubleshooting Guide

Describes common problems that you might encounter when using GlassFish Server and explains how to solve them. 

Error Message Reference

Describes error messages that you might encounter when using GlassFish Server. 

Reference Manual

Provides reference information in man page format for GlassFish Server administration commands, utility commands, and related concepts. 

Domain File Format Reference

Describes the format of the GlassFish Server configuration file, domain.xml.

Java EE 6 Tutorial

Explains how to use Java EE 6 platform technologies and APIs to develop Java EE applications. 

Message Queue Release Notes

Describes new features, compatibility issues, and existing bugs for GlassFish Message Queue. 

Message Queue Administration Guide

Explains how to set up and manage a Message Queue messaging system. 

Message Queue Developer’s Guide for JMX Clients

Describes the application programming interface in Message Queue for programmatically configuring and monitoring Message Queue resources in conformance with the Java Management Extensions (JMX). 

Features Available Only in the Full Platform Profile

The following features of Oracle GlassFish Server 3.0.1 are available only in the Full Platform Profile:

Connector modules that use only outbound communication features and work-management that does not involve inbound communication features are supported in the Web Profile. Other connector features are supported only in the Full Platform Profile.

Java EE 6 Standards

Table 1–5 lists the Java EE 6 standards implemented in GlassFish Server 3.0.1. The table also indicates the distributions in which the implementation of a standard is available.

Table 1–5 Java EE 6 Standards Implementations in GlassFish Server 3.0.1

Java EE Standard 

Java Specification Request (JSR) 

GlassFish Server 3.0.1 Full Platform Profile 

GlassFish Server 3.0.1 Web Profile 

Java Platform, Enterprise Edition 6

JSR 316

Java Servlet Technology 3.0

JSR 315

JavaServer Pages 2.2

JSR 245

Expression Language 2.2 

JSR 245

Debugging Support for Other Languages 1.0 

JSR 45

Standard Tag Library for JavaServer Pages 1.2

JSR 52

JavaServer Faces 2.0

JSR 314

Common Annotations for the Java Platform 1.1 

JSR 250

Java Transaction API 1.1

JSR 907

Java Persistence API 2.0

JSR 317

Enterprise JavaBeans 3.1 Lite

JSR 318

Managed Beans 1.0 

JSR 316

Interceptors 1.1 

JSR 318

Dependency Injection for Java 1.0 

JSR 330

Enterprise JavaBeans 3.1 Full API

JSR 318

Contexts and Dependency Injection for Java EE 1.0 

JSR 299

Java API for RESTful Web Service (JAX-RS) 1.1

JSR 311

Bean Validation 1.0 

JSR 303

Java EE Connector Architecture 1.6

JSR 322

Java API for XML-Based Web Services (JAX-WS) 2.2

JSR 224

Java Architecture for XML Binding (JAXB) 2.2

JSR 222

Implementing Enterprise Web Services 1.3 

JSR 109

Web Services Metadata for the Java Platform 2.1 

JSR 181

Java Message Service API 1.1

JSR 914

JavaMail 1.4

JSR 919

Java Authorization Contract for Containers 1.4

JSR 115

Java Authentication Service Provider Interface for Containers 1.1 

JSR 196

Java EE Application Deployment 1.2

JSR 88

J2EE Management 1.1

JSR 77

Java API for XML-Based Remote Procedure Calls (JAX-RPC) 1.1

JSR 101

Java API for XML-Based Registries (JAXR) 1.0 

JSR 93

Building on these standards, GlassFish Server 3.0.1 provides a number of extensions, including the following:

Java EE 6 SDK

GlassFish Server 3.0.1 is available as part of the Java EE 6 SDK. The following versions of the Java EE 6 SDK are available:

Java EE 6 SDK distributions are available from the Java EE 6 SDK downloads page.

How to Report Problems and Provide Feedback

If you have problems with Oracle GlassFish Server 3.0.1, provide feedback through one of the following mechanisms:

Additional Resources

Useful information can be found at the following locations:

Third-Party Web Site References

Third-party URLs are referenced in this document and provide additional, related information.


Note –

Oracle is not responsible for the availability of third-party Web sites mentioned in this document. Oracle does not endorse and is not responsible or liable for any content, advertising, products, or other materials that are available on or through such sites or resources. Oracle will not be responsible or liable for any actual or alleged damage or loss caused by or in connection with the use of or reliance on any such content, goods, or services that are available on or through such sites or resources.


Accessibility Features

Our goal is to make Oracle products, services, and supporting documentation accessible to all users, including users that are disabled. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Accessibility standards will continue to evolve over time, and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For more information, visit the Oracle Accessibility Program Web site at http://www.oracle.com/us/corporate/accessibility/index.html.