The Sun Java System Application Server 8.12005Q2 (Application Server 8.1) is upward binary-compatible with Sun Java System Application Server 8 2004Q2 (Application Server 8) and with Sun Java System Application Server 7 2004Q2 (Application Server 7) except for the incompatibilities noted below. J2EE applications that run on versions 7 and 8 also work on version 8.1 except for the incompatibilities noted below.
The topics discussed in this chapter include incompatibilities in the following areas:
Application Server 8.1 replaces the Web server shipped with Application Server 7 with a . As a result, the following web server-specific features are no longer supported in version 8.1:
cgi-bin, shtml
SNMP support
NSAPI plugin APIs
Native content handling features
Web server tools (flexanlg, htpasswd)
HTTP QoS
Web server configuration files (*.conf, *.acl, mime.types)
Web server-specific log rotation facility
Watch dog process (appserv-wdog)
The package names of the security realm implementations have been renamed from com.iplanet.ias.security.auth.realm in Application Server 7 to com.sun.enterprise.security.auth.realm in Application Server 8.1. Custom realms written using the com.iplanet.* classes must be modified.
The com.sun.enterprise.security.AuthenticationStatus class has been removed.
The com.sun.enterprise.security.auth.login.PasswordLoginModule authenticate method implementation has changed as follows.
/** * Perform authentication decision. * <P> Note: AuthenticationStatus and AuthenticationStatusImpl * classes have been removed. * Method returns silently on success and returns a LoginException * on failure. * * @return void authenticate returns silently on * successful authentication. * @throws LoginException on authentication failure. * */ abstract protected void authenticate() throws LoginException;
For more information:
http://developers.sun.com/prodtech/appserver/reference/techart/as8_authentication/index.html
In Application Server 7, the default value for the optional attribute delegate was false. In Application Server 8.1, this attribute defaults to true. This change means that by default the Web application classloader first delegates to the parent classloader before attempting to load a class by itself. For details, see Application Server 8.1 Options Contrary to J2EE 1.4 Specification Recommendations.
The encodeCookies property of the sun-web-app element in the sun-web.xml file performs URL encoding of cookies if set to true. If set to false, no encoding of cookies is performed. In Application Server 7, the default value of the encodeCookies property was true. This property was not present in Application Server 8. In Application Server 8.1, the default value is false.
In general, URL encoding of cookies is unnecessary. Setting this property to true is strongly discouraged. This property is provided only for those rare applications that depended on this behavior in Application Server 7. This property might be removed in a future release.
In Application Server 7, users were able to specify the following system property to optionally turn on some ORB performance optimization:
-Djavax.rmi.CORBA.UtilClass=com.iplanet.ias.util.orbutil.IasUtilDelegate
The ORB performance optimization is turned on by default in Application Server 8.1. If you are using the system property reference above, you must remove it to avoid interfering with the default optimization.
In Application Server 8.1, domain.xml is the main server configuration file. In Application Server 7, the main server configuration file was server.xml. The DTD file of domain.xml is found in lib/dtds/sun-domain_1_1.dtd. The upgrade tool included in Application Server 8.1 can be used to migrate the server.xml from Application Server 7 to domain.xml for Application Server 8.1.
The lib/dtds/sun-domain_1_1.dtd file for Application Server 8.1 is fully backward compatible with the corresponding file for Application Server 8, sun-domain_1_0.dtd.
In general, the configuration file formats are not backward compatible. The following configuration files are not supported:
*.conf
*.acl
mime.types
server.xml (replaced with domain.xml)
As a general rule, tools are not interoperable between Application Server 7 and 8.1. Users must upgrade their Application Server 7 tools to work with Application Server 8.1.
In Application Server 7, it was possible to change any field (in the Administration Console) or attribute (in the command line interface). In Application Server 8.1, a field or attribute that is the primary key of an item cannot be changed. However, an item can be deleted and then recreated with a new primary key value. In most cases, the primary key is a name, ID, reference, or JNDI name. The following table lists the primary keys that cannot be changed.
In the domain.xml file, a field or attribute is called an attribute, and an item is called an element. For more information about domain.xml, see the Sun Java System Application Server Platform Edition 8.1 2005Q2 Update 2 Administration Reference.
Item |
Primary Key Field or Attribute |
---|---|
admin-object-resource |
jndi-name |
alert-subscription |
name |
appclient-module |
name |
application-ref |
ref |
audit-module |
name |
auth-realm |
name |
cluster-ref |
ref |
cluster |
name |
config |
name |
connector-connection-pool |
name |
connector-module |
name |
connector-resource |
jndi-name |
custom-resource |
jndi-name |
ejb-module |
name |
external-jndi-resource |
jndi-name |
http-listener |
id |
iiop-listener |
id |
j2ee-application |
name |
jacc-provider |
name |
jdbc-connection-pool |
name |
jdbc-resource |
jndi-name |
jms-host |
name |
jmx-connector |
name |
lb-config |
name |
lifecycle-module |
name |
mail-resource |
jndi-name |
message-security-config |
auth-layer |
node-agent |
name |
profiler |
name |
element-property |
name |
provider-config |
provider-id |
resource-adapter-config |
resource-adapter-name |
resource-ref |
ref |
security-map |
name |
server |
name |
server-ref |
ref |
system-property |
name |
thread-pool |
thread-pool-id |
virtual-server |
id |
web-module |
name |
persistence-manager-factory-resource |
jndi-name |
The start-appserv and stop-appserv commands are deprecated. Use of these commands results in a warning. Useasadmin start-domain and asadmin stop-domain instead.
In Application Server 8.1, the Log Messages to Standard Error field has been removed from the Administration Console. The log-to-console attribute in the domain.xml file is deprecated and ignored. The asadmin set command has no effect on the log-to-console attribute. Use the ---verbose option of the asadmin start-domain command to print messages to the window in which you executed the asadmin start-domain command. This only works if you execute the asadmin start-domain command on the machine on which the domain you are starting is installed.
The following sections describe changes to the command line utility asadmin:
For more information about the asadmin commands, see the Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 Reference Manual.
Subcommands are backward compatible except as noted below.
The following subcommand is deprecated and ignored:
reconfig
The following subcommands are no longer supported in Application Server 8.1, because the software license key and web core were removed, and because controlled functions from web server features are no longer supported:
install-license
display-license
create-http-qos
delete-http-qos
create-mime
delete-mime
list-mime
create-authdb
delete-authdb
list-authdbs
create-acl
delete-acl
list-acls
For Application Server 7, the exit codes returned by the start and stop subcommands of the asadmin command were based on the desired end state. For example, for asadmin start-domain, if the domain was already running, the exit code was 0 (success). If domain startup failed, the exit code was 1 (error).
For Application Server 8.1, the exit codes are based on whether the commands execute as expected. For example, the asadmin start-domain command returns exit code 1 if the domain is already running or if domain startup fails. Similarly, asadmin stop-domain returns exit code 1 if the domain is already not running or cannot be stopped.
Options in the following table are deprecated or no longer supported.
Table 1–2 Deprecated and Unsupported asadmin Options
Option |
Deprecated or Unsupported in Subcommands |
---|---|
--acceptlang |
Deprecated for the create-virtual-server subcommand. |
--acls |
Deprecated for the create-virtual-server subcommand. |
--adminpassword |
Deprecated for all relevant subcommands. Use --passwordfile instead. |
--blockingenabled |
Deprecated for the create-http-listener subcommand. |
--configfile |
Deprecated for the create-virtual-server subcommand. |
--defaultobj |
Deprecated for the create-virtual-server subcommand. |
--domain |
Deprecated for the stop-domain subcommand. |
--family |
Deprecated for the create-http-listener subcommand. |
--instance |
Deprecated for all remote subcommands. Use --target instead. |
--mime |
Deprecated for the create-virtual-server subcommand. |
--optionsfile |
No longer supported for any commands. |
--password |
Deprecated for all remote subcommands. Use --passwordfile instead. |
--path |
Deprecated for the create-domain subcommand. Use --domaindir instead. |
--resourcetype |
Deprecated for all relevant subcommands. Use --restype instead. |
--storeurl |
No longer supported for any commands. |
--target |
Deprecated for all jdbc-connection-pool, connector-connection-pool, connector-security-map, and resource-adapter-config subcommands. |
--type |
Deprecated for all relevant subcommands. |
The following use of dotted names in asadmin get and set subcommands are not backward compatible:
Default server name is server instead of server1
.resource becomes domain.resources.resource
.app-module becomes domain.applications.app-module
Attributes names format is different, for example, poolResizeQuantity is now pool-resize-quantity
Some aliases supported in Application Server 7 are not supported in Application Server 8.1
In Application Server 8.1, the ---passwordfile option of the asadmin command does not read the password.conf file, and the upgrade tool does not upgrade this file. For information about creating a password file in Application Server 8.1, see the Sun Java System Application Server Platform Edition 8.1 2005Q2 Update 2 Administration Guide.
The table below displays a one-to-one mapping of the incompatibilities in dotted names between Application Server 7 and 8.1. The compatible dotted names are not listed in this table.
Table 1–3 Incompatible Dotted Names Between Versions
Application Server 7 Dotted Names |
Application Server 8 Dotted Names |
---|---|
server_instance.http-listener.listener_idserver_instance.http-service.http-listener.listener_id |
.http-service.http-listener.listener_id.http-service.http-listener.listener_id |
server_instance.orbserver_instance.iiop-service |
.iiop-service.iiop-service |
server_instance.orblistenerserver_instance.iiop-listener |
.iiop-service.iiop-listener.listener_id.iiop-service.iiop-listener.listener_id |
server_instance.jdbc-resource.jndi_name |
.resources.jdbc-resource.jndi_namedomain.resources.jdbc-resource.jndi_name |
server_instance.jdbc-connection-pool.pool_id |
.resources.jdbc-connection-pool.pool_iddomain.resources.jdbc-connection-pool.pool_id |
server_instance.external-jndi-resource.jndi_nameserver_instance.jndi-resource.jndi_name |
.resources.external-jndi-resource.jndi_namedomain.resources.external.jndi-resource.jndi_name |
server_instance.custom-resource.jndi_name |
.resources.custom-resource.jndi_namedomain.resources.custom-resource.jndi_name |
server_instance.web-container.logLevel (see note below) |
.log-service.module-log-levels.web-container.log-service.module-log-levels.web-container |
server_instance.web-container.monitoringEnabled (see note below) |
.monitoring-service.module-monitoring-levels.web-container.monitoring-service.module-monitoring-levels.web-container |
server_instance.j2ee-application.application_nameserver_instance.application.application_name |
.applications.j2ee-application.application_namedomain.applications.j2ee-application.application_name |
server_instance.ejb-module.ejb-module_name |
.applications.ejb-module.ejb-module_namedomain.applications.ejb-module.ejb-module_name |
server_instance.web-module.web-module_name |
.applications.web-module.web-module_namedomain.applications.web-module.web-module_name |
server_instance.connector-module.connector_module_name |
.applications.connector-module.connector_module_namedomain.applications.connector-module.connector_module_name |
server_instance.lifecycle-module.lifecycle_module_name |
.applications.lifecycle-module.lifecycle_module_namedomain.application.lifecycle-module.lifecycle_module_name |
server_instance.virtual-server-class |
N/A |
server_instance.virtual-server.virtual-server_id |
.http-service.virtual-server.virtual-server_id.http-service.virtual-server.virtual-server_id |
server_instance.mime.mime_id |
N/A |
server_instance.acl.acl_id |
N/A |
server_instance.virtual-server.virtual-server_id.auth-db.auth-db_id |
N/A |
server_instance.authrealm.realm_idserver_instance.security-service.authrealm.realm_id |
.security-service.auth-realm.realm_id.security-service-auth-realm.realm_id |
server_instance.persistence-manager-factory-resource.jndi_nameserver_instance.resources.persistence-manager-factory-resource.jndi_name |
.resources.persistence-manager-factory-resource.jndi_namedomain.resources.persistence-manager-factory-resource.jndi_name |
server_instance.http-service.acl.acl_id |
N/A |
server_instance.mail-resource.jndi_name |
.resources.mail-resource.jndi_namedomain.resources.mail-resource.jndi_name |
server_instance.profiler |
.java-config.profiler.java-config.profiler |
Rows with note in previous table describe attribute names. In these instances, there is not a one-to-one relationship with the dotted names between Application Server 7 and 8.1.
The asadmin get command shows raw values in Application Server 8.1 instead of resolved values as in Application Server 8. These raw values may be tokens. For example, executing the following command:
asadmin get domain.log-root
displays the following value:
${com.sun.aas.instanceRoot}/logs
In Application Server 8, attributes with no values contained nulls. This caused problems in attributes that specified paths. In Application Server 8.1, attributes with no values contain empty strings, as they did in Application Server 7.