type=page
status=published
title={productName} 7 Release Notes
prev=preface.html
~~~~~~

= {productName} 7 Release Notes

[[GSRLN00001]][[abppa]]


[[glassfish-server-open-source-edition-release-notes]]
== 1 {productName} 7 Release Notes

[CAUTION]
====
To Be Done

This page must be updated before the release!
====

{productName} provides a lightweight, modular server for the
development of Java Platform Enterprise Edition (Jakarta EE) 8
applications. It is the Reference Implementation for Jakarta EE. It
delivers a highly productive platform for developing with the latest
Jakarta EE technologies.

For any issue or information on {productName},
see the https://glassfish.org/.

These Release Notes provide late-breaking information about {productName} 7
software and documentation. These Release Notes include
summaries of supported hardware, operating environments, and JDK and
JDBC/RDBMS requirements. Also included are a summary of new product
features in the 7 release, and descriptions and workarounds for known
issues and limitations.

Refer to this document prior to installing, configuring, or using
{productName} 7 software. Consult this document periodically to
view the most up-to-date product information.

* link:#ghmvk["Revision History"]
* link:#glcmf["What's New in the {productName} 7 Release?"]
* link:#abpaj["Hardware and Software Requirements"]
* link:#glcmm["Known Issues in {productName} 7"]
* link:#ggqok["Restrictions and Deprecated Functionality"]
* link:#BABDACBE["Documentation Errata"]
* link:#giraq["Features Available Only in the Full Platform"]
* link:#gipkz["Jakarta EE Standards Support"]
* link:#ghmtl["Jakarta EE SDK"]
* link:#abpha["How to Report Problems and Provide Feedback"]
* link:#abphc["Additional Resources"]

[[ghmvk]][[GSRLN00128]][[revision-history]]

=== Revision History

This section lists the revision history for these Release Notes.

[[sthref2]][[gabzd]]

Table 1-1 Revision History

[width="100%",options="header",]
|===
|Date |Description of Changes
|September 2017 |{productName} 7.
|===


[[glcmf]][[GSRLN00129]][[whats-new-in-the-glassfish-server-release]]

=== What's New in the {productName} 7 Release?

GlassFish is the Reference Implementation for Jakarta EE. Jakarta EE 10
introduces ... To Be Done

{productName} 7 includes the following new and updated Jakarta EE standards.

New Features

* To Be Done

Updated

* To Be Done

For a complete list of the Jakarta EE technologies included in {productName} 7,
see link:#gipkz[Jakarta EE Standards Support].


[NOTE]
====
The main thrust of the {productName} 7 release
is to provide an application server for developers to explore and begin
exploiting the new and updated technologies in the Jakarta EE 10 platform.
Thus, the following features of {productName} were not a focus of
this release:

* Clusters and centralized management of standalone instances
* High availability features
* Upgrade
* Embedded Server

These features are included in the release, but they may not function
properly with some of the new features added in support of the Jakarta EE 10 platform.
====

[[abpaj]][[GSRLN00131]][[hardware-and-software-requirements]]

=== Hardware and Software Requirements

This section lists the requirements that must be met before installing
{productName} Release 7 software.

The following topics are addressed here:

* link:#abpak[Required JDK Versions]
* link:#ggppy[Required Disk Space]
* link:#ggpoq[Required Free Ports]
* link:#gkxlg[Message Queue Broker Requirements]
* link:#gfgps[Paths and Environment Settings for the JDK Software]

[[abpak]][[GSRLN00246]][[required-jdk-versions]]

==== Required JDK Versions

{productName} Release 7 requires Oracle JDK 8
Update 144 or later.

Also be sure to see link:#gfgps[Paths and Environment Settings for the
JDK Software] for important JDK configuration instructions.

[NOTE]
====
It is recommended that any machine that is hosting a {productName}
DAS or server instance have a minimum of 1 GB RAM.
====

[[ggppy]][[GSRLN00248]][[required-disk-space]]

==== Required Disk Space

The download sizes for {productName} 7 vary depending on the
package you choose. The following are the approximate sizes of the ZIP
packages for the Full and Web profiles:

* Full `*.zip`: 114 MB (136 MB unzipped)
* Web `*.zip`: 64.9 MB (82.9 MB unzipped)

The installation sizes will vary depending on your configuration, but
the approximate amount of disk space used by {productName} 7 is as
follows:

* Full: 138 MB
* Web: 84.4 MB

[[ggpoq]][[GSRLN00249]][[required-free-ports]]

==== Required Free Ports

You must have sixteen unused ports available for the ports {productName} uses. 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.

[[sthref3]][[ggpmu]]

Table 1-2 Default Port Assignments for {productName} 7

[width="100%",cols="63%,37%",options="header",]
|===
|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

|22 |SSH port

|9009 |Java debugger

|7676 |JMS provider

|Auto-generated from the operating system's dynamic port range |Message Queue TCP port

|Auto-generated from the operating system's dynamic port range |Message Queue Admin port

|9090 |GMS TCP start port

|9200 |GMS TCP end port

|Auto-generated between GMS TCP start and end ports |GMS listener port

|Auto generated between 2048 and 49151 |GMS multicast port
|===


In some situations, such as when multiple domains are running on a
single host, port conflicts can arise in the auto-generated ports used
by Message Queue and the GMS. To avoid these conflicts, you can
configure the JMS host and the GMS to use specific ports.

[[sthref4]][[to-configure-specific-ports-for-a-jms-host]]

===== To Configure Specific Ports for a JMS Host

When you create a JMS Host, {productName} automatically selects ports
for the JMS provider (called the portmapper port in Message Queue
terminology), the Message Queue TCP port and the Message Queue admin
port.

To provide specific values for these ports, use the `--mqport` and
`--property` options when creating the JMS host:

[source]
----
asadmin> create-jms-host --mqhost hostName --mqport portNumber \
--mquser adminUser --mqpassword adminPassword --target glassfishTarget \
--property imq\\.jms\\.tcp\\.port=tcpPort:imq\\.admin\\.tcp\\.port=adminPort \
jms-host-name
----

`--mqport` `portNumber`::
  This option specifies the JMS provider port number.
`--property imq\\.jms\\.tcp\\.port=``tcpPort``:imq\\.admin\\.tcp\\.port=``adminPort`::
  The `imq.jms.tcp.port` and `imq.admin.tcp.port` properties specify the
  TCP port and the admin port numbers. The double backslashes (`\\`) are
  used in the `--properties` option to escape the dots in the property
  names.

[[sthref5]][[to-configure-specific-gms-ports-for-a-cluster]]

===== To Configure Specific GMS Ports for a Cluster

When you create a cluster, {productName} automatically selects a port
for GMS multicast that does not conflict with the GMS multicast port of
any other cluster in the domain. Additionally, when you start a cluster,
the GMS automatically selects an available port in a specific range for
its TCP listener.

If two or more domains are running on the same host, configure the
clusters in the domains to ensure that no GMS port conflicts can arise
among the clusters. To avoid possible port conflicts, use the
`--multicast` and `--properties` options when creating the cluster:

[source]
----
asadmin> create-cluster --multicastport multicast-port \
--properties GMS_TCPSTARTPORT=start-port:GMS_TCPENDPORT=end-port \
cluster-name
----

`--multicastport` `multicast-port`::
  This option specifies the port number for the GMS to use for UDP
  multicast.
`--properties GMS_TCPSTARTPORT=``start-port``:GMS_TCPENDPORT=``end-port`::
  The `GMS_TCPSTARTPORT` and `GMS_TCPENDPORT` properties specify the
  range of port numbers the GMS is to use when selecting an available
  port for its TCP listener.
+

[NOTE]
====
Though you can create a cluster, there is no support for
configuration, as this has not been tested.
====

[[gkxlg]][[GSRLN00250]][[message-queue-broker-requirements]]

==== Message Queue Broker Requirements

{productName} 7 is now bundled with Message Queue (MQ) Broker
5.1.1. Refer to the
https://github.com/eclipse-ee4j/glassfishdoc/5.1/mq-release-notes.pdf[`Open Message Queue Release Notes`]
for complete information about MQ Broker requirements.

[[gfgps]][[GSRLN00252]][[paths-and-environment-settings-for-the-jdk-software]]

==== Paths and Environment Settings for the JDK Software

Ensure that your JDK configuration settings on all local and remote
{productName} hosts adhere to the guidelines listed below. Failure to
adhere to these guidelines can cause various problems that may be
difficult to trace.

The following topics are addressed here:

* link:#gldjj[Use the JDK Binaries]
* link:#gldgl[Set the `JAVA_HOME` Environment Variable]
* link:#gldho[Set Other Environment Variables As Necessary]

[[gldjj]][[GSRLN00155]][[use-the-jdk-binaries]]

===== Use the JDK Binaries

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

* `java`
* `keytool`

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

[[gldgl]][[GSRLN00156]][[set-the-java_home-environment-variable]]

===== Set the `JAVA_HOME` Environment Variable

Before performing any {productName} installation or configuration
procedures, set the `JAVA_HOME` environment variable on the {productName} host machine to point to the correct Java version. Also be sure
to add the `JAVA_HOME/bin` directory to the `PATH` variable for your
environment. The `JAVA_HOME` variable must be set on all local and
remote {productName} hosts.

[[gldho]][[GSRLN00157]][[set-other-environment-variables-as-necessary]]

===== Set Other Environment Variables As Necessary

All remote `asadmin` subcommands require the correct version of Java to
be available on the affected remote machine. For example, when creating
a cluster or server instance on a remote machine, the remote machine
uses its local default Java installation, not the Java installation that
is on the DAS. Errors will therefore occur if the remote machine uses
the wrong Java version.

Depending on the remote subcommand, the errors may not occur when the
subcommand is executed, but may occur later, when interacting with a
configuration or resource created or modified by the subcommand. For
example, when creating a clustered server instance on a remote machine,
the error may only first appear when you attempt to deploy an
application on that server instance.

This issue is more likely to be encountered when {productName} is
installed on the remote server by means of a ZIP file package as you do
not have the option to specifically choose your Java version while
unzipping a ZIP file.

Depending on what shell is invoked via SSH on the remote host, the
`JAVA_HOME` and `PATH` environment variables may need to be explicitly
set in `.bashrc`, `.cshrc`, or some other shell configuration file. This
configuration file may differ from the one that is used when you log in
to the machine, such as `.profile`.

Alternatively, you can specifically set the Java path with the `AS_JAVA`
property in the in the as-install``/config/asenv.conf`` file.

[[glcmm]][[GSRLN00253]][[known-issues-in-glassfish-server-5.1]]

=== Known Issues in {productName} 7

This section describes known issues and any available workarounds for
{productName} 7 software.

The following topics are addressed here:

* link:#CHDIBHHF[JAXB and JAX-WS no longer part of Jakarta EE platform]
* link:#CHDIBEAJ[Resource validation property is enabled in the JVM option for deployment]
* link:#CHDBJDGF[Update Tool and pkg Command no longer part of {productName}]
* link:#CHDJGJHD[Java DB has been replaced by Apache Derby]

[[CHDIBHHF]][[jaxb-and-jax-ws-no-longer-part-of-java-ee-platform]]

==== JAXB and JAX-WS no longer part of Jakarta EE platform

[[sthref6]][[description]]

===== Description

Jakarta XML Binding (previous JAXB) and Jakarta XML Web Services (previouly JAX-WS)
are part of Jakarta EE platform, but as optional technologies. However,
the jars are packaged in GlassFish.

[NOTE]
====
These jars are present only in the full profile of GlassFish and
not part of web profile.
====

[[sthref7]][[workaround]]

===== Workaround

None

[[CHDIBEAJ]][[resource-validation-property-is-enabled-in-the-jvm-option-for-deployment]]

==== Resource validation property is enabled in the JVM option for deployment

[[sthref8]][[description-1]]

===== Description

A new JVM option for deployment - deployment.resource.validation is
introduced in {productName} 7. This property is set to True by
default so that each resource is validated during deployment time. This
ensures that all resources are created beforehand. This property is
applicable for administration server as well as instances when clusters
are involved.


[NOTE]
====
However, for deployment of applications containing embedded resource
adapter, a connector resource is created after deployment. For the
deployment of such applications to succeed, the server(s) must be
started with this property set to false. For more information on JVM
deployment options see
https://github.com/eclipse-ee4j/glassfishdoc/5.1/administration-guide.pdf#G11.998994[`Administering JVM Options.`]
====


[[sthref9]][[workaround-1]]

===== Workaround

In case you do not want the resource validation to take place during the
deployment, you can set this property value to False.

[[CHDBJDGF]][[update-tool-and-pkg-command-no-longer-part-of-glassfish-server]]

==== Update Tool and pkg Command no longer part of {productName}

[[sthref10]][[description-2]]

===== Description

In previous releases, you could update your {productName} software
using the pkg command and the Update tool. Since the recent release of
{productName} does not require the use of these features, they have
been removed from the {productName} installation.

[[sthref11]][[workaround-2]]

===== Workaround

No workaround.

[[CHDJGJHD]][[java-db-has-been-replaced-by-apache-derby]]

==== Java DB has been replaced by Apache Derby

[[sthref12]][[description-3]]

===== Description

In the previous releases, Java DB was used as the database for {productName}s. With the release of {productName} 7, Apache Derby
10.13.1.1 has replaced Java DB as the database for {productName}s.

[[sthref13]][[workaround-3]]

===== Workaround

No workaround.

[[ggqok]][[GSRLN00133]][[restrictions-and-deprecated-functionality]]

=== Restrictions and Deprecated Functionality

This section describes restrictions and deprecated functionality in
{productName} 7.

The following topics are addressed here:

* link:#ggqoc[`asadmin` Subcommands]
* link:#abmbf[Deprecated, Unsupported, and Obsolete Options]
* link:#gkueg[Applications That Use Apache Derby]
* link:#ghpen[No Support for Client VM on Windows AMD64]
* link:#gkwbd[Metro Reliable Messaging in `InOrder` Delivery Mode]

[[ggqoc]][[GSRLN00258]][[asadmin-subcommands]]

==== `asadmin` Subcommands

In {productName} 7, it is recommended that utility options of the
`asadmin` command precede the subcommand. Utility options are options
that control the behavior of the `asadmin` utility, as distinguished
from subcommand options. Use of the following options after the
subcommand is deprecated.

* `--host`
* `--port`
* `--user`
* `--passwordfile`
* `--terse`
* `--secure`
* `--echo`
* `--interactive`

[[abmbf]][[GSRLN00259]][[deprecated-unsupported-and-obsolete-options]]

==== Deprecated, Unsupported, and Obsolete Options

Options in link:#gaeki[Table 1-3] are deprecated or no longer supported,
or are obsolete and are ignored.

[[sthref14]][[gaeki]]

Table 1-3 Deprecated, Unsupported, and Obsolete Options for `asadmin`
and Subcommands

[width="100%",cols="33%,67%",options="header",]
|===
|Option |Affected Subcommands
|`--acceptlang` |Unsupported for the `create-virtual-server` subcommand.

|`--acls` |Unsupported for the `create-virtual-server` subcommand.

|`--adminpassword` |Unsupported for all relevant subcommands. Use
`--passwordfile` instead.

|`--autoapplyenabled` |Obsolete for the `create-http-lb` subcommand.

|`--autohadb` |Obsolete for the `create-cluster` subcommand.

|`--autohadboverride` |Obsolete for the `start-cluster` subcommand and
the `stop-cluster` subcommand

|`--blockingenabled` |Unsupported for the `create-http-listener` subcommand.

|`--configfile` |Unsupported for the `create-virtual-server` subcommand.

|`--defaultobj` |Unsupported for the `create-virtual-server` subcommand.

|`--defaultvs` |Deprecated for the `create-http-listener` subcommand.
Use `--default-virtual-server` instead.

|`--description` |Obsolete for the `restore-domain` subcommand.

|`--devicesize` |Obsolete for the `create-cluster` subcommand.

|`--haadminpassword` |Obsolete for the `create-cluster` subcommand.

|`--haadminpasswordfile` |Obsolete for the `create-cluster` subcommand.

|`--haagentport` |Obsolete for the `create-cluster` subcommand.

|`--haproperty` |Obsolete for the `create-cluster` subcommand.

|`--hosts` |Obsolete for the `create-cluster` subcommand.

|`--ignoreDescriptorItem` |Replaced by the all lowercase option
`--ignoredescriptoritem` in the `set-web-context-param` subcommand and
the `set-web-env-entry` subcommand.

|`--mime` |Unsupported for the `create-virtual-server` subcommand.

|`--password` |Unsupported for all remote subcommands. Use
`--passwordfile` instead.

|`--path` |Unsupported for the `create-domain` subcommand. Use
`--domaindir` instead.

|`--portbase` |Obsolete only for the `create-cluster` subcommand. This
option is still valid in other subcommands such as `create-domain`,
`create-instance`, and `create-local-instance`.

|`--resourcetype` |Unsupported for all relevant subcommands. Use
`--restype` instead.

|`--retrievefile` |Obsolete for the `export-http-lb-config` subcommand.

|`--setenv` |Obsolete for the `start-instance` subcommand.

|`--target` a|
Obsolete only for the following subcommands:

* `create-connector-connection-pool`
* `create-resource-adapter-config`
* `delete-connector-connection-pool`
* `delete-connector-security-map`
* `delete-jdbc-connection-pool`
* `delete-resource-ref`

Replaced by an operand in the `list-custom-resources` subcommand and the
`list-jndi-entries` subcommand.
|===


[[gkueg]][[GSRLN00260]][[applications-that-use-apache-derby]]

==== Applications That Use Apache Derby

The directory location of Apache Derby in {productName} 7 has
changed from its location in previous installations. Suppose that you
have deployed applications that use Apache Derby databases in your
previous server installation, and you upgrade your existing installation
to {productName} 7. If you run the `asadmin start-database` command
and successfully start Apache Derby, you could run into problems while
trying to run applications that were deployed on your previous server
installation.

To solve this problem, you can copy the `databases` directory from your
previous installation to as-install``/databases``. Make sure the database
is not running when you do this.

Alternatively, you can perform these steps:

1. Use the `asadmin start-database` command with the `--dbhome` option
pointing to the `databases` directory in the older version of Apache
Derby. For example:
+
[source]
----
asadmin start-database --dbhome c:\glassfish\databases
----
2. After upgrade, start {productName} 7.

[[ghpen]][[GSRLN00261]][[no-support-for-client-vm-on-windows-amd64]]

==== No Support for Client VM on Windows AMD64

By default, the {productName} DAS uses the 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. Note that
server instances use the Server VM by default.

For more information about platform support, see
http://www.oracle.com/technetwork/java/ergo5-140223.html[Ergonomics in
the 5.1 Java Virtual Machine].

[[gkwbd]][[GSRLN00262]][[metro-reliable-messaging-in-inorder-delivery-mode]]

==== Metro Reliable Messaging in `InOrder` Delivery Mode

The Metro Reliable Messaging in `InOrder` Delivery mode has not been
tested for high availability in {productName} 7. The feature may
work, but it has not been formally tested and is therefore not a
supported feature.

[[glgiy]][[GSRLN00263]][[no-support-for-kerberos-on-aix]]

==== No Support for Kerberos on AIX

{productName} 7 does not support Kerberos on the AIX platform.

For the complete report about this issue, see
https://github.com/javaee/glassfish/issues/16728[`Issue-16728`]

[[BABDACBE]][[documentation-errata]]

=== Documentation Errata

This section describes documentation errata.

* link:#BABIDEHD[Upgrading to {productName} Is Not Necessary]

[[BABIDEHD]][[upgrading-to-oracle-glassfish-server-is-not-necessary]]

==== Upgrading to {productName} Is Not Necessary

The {productName} Administration Guide discusses
upgrading {productName} to {productName}. {productName} 4.x is only an open source release, so this
upgrade is not necessary.


[NOTE]
====
Upgrading may not work for {productName} 7
====


[[giraq]][[GSRLN00135]][[features-available-only-in-the-full-platform]]

=== Features Available Only in the Full Platform

The following features of {productName} 7 are available only in the
Full Platform:

* EJB features that make up the full EJB 3.2 API, such as remote EJB
components, message-driven beans, web service EJB endpoints, and the EJB
Timer Service
+
The EJB 3.2 Lite specification is supported in the Web Profile. This
specification allows enterprise beans within web applications and
includes support for local stateless session beans, stateful session
beans, and singleton session beans.
* Application Client Container
* JMS resources
* Web services
+
In the Web Profile, a servlet or EJB component cannot be a web service
endpoint. The `sun-web.xml` and `sun-ejb-jar.xml` elements that are
related to web services are ignored.
* Message security
* JavaMail resources

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 {productName} 7 full platform.

[[gipkz]][[GSRLN00136]][[java-ee-standards-support]]

=== Jakarta EE Standards Support

link:#gjxcp[Table 1-4] lists the Jakarta EE standards implemented in
{productName} 7. The table also indicates the distributions in
which the implementation of a standard is available.

* X indicates that the implementation is available in the distribution.
* - indicates that the implementation is not available in the
distribution.

[[sthref15]][[gjxcp]]

Table 1-4 Jakarta EE Standards Implementations in {productName} 7

[width="100%",cols="<48%,<10%,<10%,<10%",options="header",]
|===
|Jakarta EE Standard |Version |{productName} 7 Full Platform |{productName} 7 Web Profile

|https://jakarta.ee/specifications/platform/10/[Jakarta EE Specification]
|10
|X
|X

|https://jakarta.ee/specifications/activation/[Activation]
|2.1
|X
|-

|https://jakarta.ee/specifications/security/[Security]
|3.0
|X
|X

|https://jakarta.ee/specifications/batch/[Batch]
|2.1
|X
|-

|https://jakarta.ee/specifications/concurrency/[Concurrency]
|3.0
|X
|-

|https://jakarta.ee/specifications/jsonp/[JSON Processing]
|2.1
|X
|X

|https://jakarta.ee/specifications/jsonb/[JSON Binding]
|3.0
|X
|X

|https://jakarta.ee/specifications/websocket/[WebSocket]
|2.1
|X
|X

|https://jakarta.ee/specifications/websocket/[Servlet]
|6.0
|X
|X

|https://jakarta.ee/specifications/pages/[Server Pages]
|3.1
|X
|X

|https://jakarta.ee/specifications/expression-language/[Expression Language]
|5.0
|X
|X

|https://jakarta.ee/specifications/debugging/[Debugging Support for Other Languages]
|2.0
|X
|X

|https://jakarta.ee/specifications/tags/[Standard Tag Library]
|3.0
|X
|X

|https://jakarta.ee/specifications/mvc/[MVC]
|2.1
|X
|X

|https://jakarta.ee/specifications/faces/[JavaServer Faces]
|4.0
|X
|X

|https://jakarta.ee/specifications/annotations/[Annotations]
|2.1
|X
|X

|https://jakarta.ee/specifications/transactions/[Transactions]
|2.0
|X
|X

|https://jakarta.ee/specifications/persistence/[Persistence]
|3.1
|X
|X

|https://jakarta.ee/specifications/managedbeans/[Managed Beans]
|2.0
|X
|X

|https://jakarta.ee/specifications/interceptors/[Interceptors]
|2.0
|X
|X

|https://jakarta.ee/specifications/dependency-injection/[Dependency Injection]
|2.0
|X
|X

|https://jakarta.ee/specifications/cdi/[Contexts and Dependency Injection]
|3.0
|X
|X

|https://jakarta.ee/specifications/persistence/[Enterprise Beans]
|4.0
|X
|-

|https://jakarta.ee/specifications/restful-ws/[RESTful Web Services]
|4.0
|X
|X

|https://jakarta.ee/specifications/bean-validation/[Bean Validation]
|3.0
|X
|X

|https://jakarta.ee/specifications/connectors/[Connectors]
|2.1
|X
|X^*^

|https://jakarta.ee/specifications/xml-web-services/[XML Web Services]
|4.0
|X
|-

|https://jakarta.ee/specifications/soap-attachments/[SOAP With Attachements]
|3.0
|X
|-

|https://jakarta.ee/specifications/xml-binding/[XML Binding]
|4.0
|X
|-

|https://jakarta.ee/specifications/enterprise-ws/[Enterprise Web Services]
|2.0
|X
|-

|https://jakarta.ee/specifications/web-services-metadata/[Web Services Metadata]
|3.0
|X
|-

|https://jakarta.ee/specifications/messaging/[Messaging]
|3.1
|X
|-

|https://jakarta.ee/specifications/mail/[Mail]
|2.1
|X
|-

|https://jakarta.ee/specifications/authentication/[Authentication]
|3.0
|X
|X

|https://jakarta.ee/specifications/authorization/[Authorization]
|2.1
|X
|-

|https://jakarta.ee/specifications/deployment/[Deployment]
|1.7
|X
|-

|https://jakarta.ee/specifications/management/[Management]
|1.1
|X
|-

|https://jakarta.ee/specifications/xml-rpc/[XML RPC]
|1.1
|X
|-

|https://jakarta.ee/specifications/xml-registries/[XML Registries]
|1.0
|X
|-
|===

^*^ Standalone Connector 1.7 Container only.

Building on these standards, {productName} 7 provides a number of
extensions, including the following:

* Ajax (asynchronous JavaScript and XML): Retrieves and displays new
  data for a portion of a web page without affecting the rest of the page.
* Metro: A web services stack that implements Java Architecture for XML
  Binding (JAXB) and Java APIs for XML Web Services 2.3 (JAX-WS 2.3).
* Grizzly: A framework for building scalable and robust servers using
  New I/O (NIO) APIs, which make scaling to thousands of users possible.
  The ability to embed components that support HTTP, Bayeux Protocol, Java
  Servlet API, and Comet is provided.

[[abpha]][[GSRLN00138]][[how-to-report-problems-and-provide-feedback]]

=== How to Report Problems and Provide Feedback

If you have problems with {productName} 7, provide feedback through
one of the following mechanisms:

* https://javaee.groups.io/g/glassfish[{productName} forum]
  (`https://javaee.groups.io/g/glassfish`) — A variety of {productName}
  community for various interests and feedback
* https://github.com/javaee/glassfish/issues[GlassFish Issue track]er
  (`https://github.com/javaee/glassfish/issues`) — {productName}
  project dashboards and issue tracking database

[[abphc]][[GSRLN00139]][[additional-resources]]

=== Additional Resources

Useful information can be found at the following locations:

* https://github.com/eclipse-ee4j/glassfish[{productName} Community]
(`https://github.com/eclipse-ee4j/glassfish`)
* http://www.oracle.com/technetwork/index.html[Oracle Developer
Information] (`http://www.oracle.com/technetwork/index.html`)
* http://www.oracle.com/technetwork/indexes/documentation/index.html[Oracle
product documentation]
(`http://www.oracle.com/technetwork/indexes/documentation/index.html`)


