Sun Java Solaris Communities My SDN Account

Tutorial and Code Camps

Java(TM) Web Services Developer Pack 1.4 Release Notes

Java Web Services Developer Pack 1.4

JavaTM Web Services Developer Pack 1.4 Release Notes

Contents

Supported Platforms
What's New in Java WSDP 1.4?
Redistributable Components
Nonredistributable Components
Environment Variables
Using Ant That Comes with Java WSDP on Linux
Uninstalling Java WSDP 1.4
Known Issues

The JavaTM Web Services Developer Pack (Java WSDP) is an all-in-one download containing key technologies to simplify building of Web services using the Java 2 Platform. For release notes for these technologies see:

Supported Platforms

This release of the Java WSDP has been tested with three Web containers (Sun Java System Application Server Platform Edition 8.0.0_01, Sun Java System Web Server 6.1 SP2, and Tomcat 5 for Java WSDP) on J2SE SDK version 1.4.2_xx on the following platforms:

  • SolarisTM 9 Operating System (Sparc and x86)
  • Windows 2003 Server Professional Edition
  • Windows XP Professional Edition
  • Red Hat Linux 9.0
  • Red Hat Linux AS 3.0

Java WSDP 1.4 can also be used with J2SE SDK v1.5, but only minimal testing has been done with this configuration. See the Known Issues section for more information.

What's New in Java WSDP 1.4?

  • JSR-105, XML Digital Signature API
  • Support for multiple Web containers (Sun Java System Application Server Platform Edition 8, Sun Java System Web Server 6.1, Tomcat 5.0 for Java WSDP Container) or no Web container
  • Support for the following profiles, based on draft versions dated April 19, 2004:
    • WS-I Basic Profile 1.1
    • WS-I Attachment Profile 1.0
    • WS-I Simple SOAP Binding Profile 1.0
  • XML and Web Services Security EA3, which implements "Web Services Security: SOAP Message Security" 1.0 from OASIS
  • Renamed JAXP Packages (from org.apache to com.sun.org.apache)
  • JAX-RPC support for Attachments

Redistributable Components

Redistribution of the entire Java WSDP is subject to this license.

The following Java WSDP components are individually redistributable. Redistribution of a component entails the redistribution of all files comprising the component and any dependent components.

Redistributable Component Files
JAXP jaxp-api.jar, dom.jar, sax.jar, xalan.jar, xercesImpl.jar, xsltc.jar
JAXB * JAXB JAR files (jaxb-api.jar, jaxb-impl.jar, jaxb-libs.jar, jaxb-xjc.jar), JAXP 1.1 or higher JAR files (jaxp-api.jar, sax.jar, dom.jar, xalan.jar), JWSDP Shared JAR files (jax-qname.jar, namespace.jar, xsdlib.jar, relaxngDataype.jar)
JAX-RPC jaxrpc-api.jar, jaxrpc-impl.jar, jaxrpc-spi.jar, relaxngDatatype.jar, xsdlib.jar, JAXP, SAAJ, jcert.jar, jnet.jar, jsse.jar
SAAJ saaj-api.jar, saaj-impl.jar, jaxp-api.jar, dom.jar, sax.jar, xalan.jar, xercesImpl.jar, activation.jar, mail.jar, servlet.jar
JAXR jaxr-api.jar, jaxr-impl.jar, jaxb-api.jar, jaxb-impl.jar, jaxb-libs.jar, saaj-api.jar, saaj-impl.jar, jaxp-api.jar, dom.jar, sax.jar, xercesImpl.jar, activation.jar, jaas.jar, mail.jar, namespace.jar, relaxngDatatype.jar, xsdlib.jar
*  If the application will not be doing any compilation at runtime, the jaxb-xjc.jar file does not need to be redistributed with the application.

Nonredistributable Components

The following Java WSDP components are not redistributable. These components can be used for designing, developing, and testing purposes only.

Nonredistributable Component Files
Registry Server registry-server.war, xindice.jar
Java XML & Web Services Security all
XML Digital Signature all
JSTL all
WS-I Sample Application all

Using Ant That Comes with Java WSDP on Linux

On Linux systems, even if you set your ANT_HOME and PATH environment variables to point to the version of Ant that is installed with the Java WSDP 1.4, when you run the Java WSDP's Ant scripts, your system will look in the /etc/ant.conf configuration file and execute the version of Ant that is configured there. In this case, the default entry is /usr/share/ant. If you want to use the version of ANT that is shipped with Java WSDP, comment out the line that configures Ant in the /etc/ant.conf configuration file and your ANT_HOME and PATH environment variable settings will be used.

Environment Variables

The JAVA_HOME environment variable is set to point to the version of the J2SE SDK you specify during installation. If you change your J2SE SDK installation, you will need to edit your <JWSDP_HOME>\jwsdp-shared\bin\setenv.bat batch file or <JWSDP_HOME>/jwsdp-shared/bin/setenv.sh and reset the JAVA_HOME environment variable.

All other custom system properties can be set in the file <JWSDP_HOME>/conf/jwsdp.properties as follows:

http.proxyHost=webcache 
http.proxyPort=8080

You can override any of the properties in your file <JWSDP_HOME>/conf/jwsdp.properties by using the -D... argument to any of the start scripts. For example,

Unix: catalina.sh -Dhttp.proxyHost=webcache -Dhttp.proxyPort=8080

Microsoft Windows: catalina -Dhttp.proxyHost=webcache -Dhttp.proxyPort=8080

Uninstalling Java WSDP 1.4

At some point, you may need to uninstall Java WSDP 1.4:

  • On Microsoft Windows, select Start --> Programs --> Java(TM) Web Services Developer Pack 1.4 --> Uninstall.
  • On Solaris and Linux, run the <JWSDP_HOME>/uninstall.sh script.

If you ran one of the integration scripts after you installed the Java WSDP, you must rerun the script using the revert.<container>.changes target before you uninstall the Java WSDP.

Known Issues

Web Server Throws Exception During Deployment/Undeployment

The Sun Java System Web Server 6.1 may throw an exception when a Web application is being deployed or undeployed. These exceptions, noted in BugID 5042463, can be ignored.

Naming Exception After Installing Java WSDP onto the Web Server

The Sun Java System Web Server 6.1 may throw a naming exception, noted in BugID 5045245. This exception can also be ignored.

XWS Security Host Process Hangs At Termination

A known XWS-Security problem allows a timer thread to hang the host process at termination, turning it into a "zombie" process. If you encounter this problem, you must manually shut down the process from the console.

WS-I Attachments Sample Application 1.0 EA throws Exception

The WS-I Attachments Sample Application 1.0 EA throws "java.sql.SQLException: No suitable driver found" on the server side. This problem occurs because URL parsing changed between MySQL Connector/J versions 3.0.11 and 3.0.12.

To get around this problem, change the "db.url" property in the file <JWSDP_HOME>/wsi-sampleapp/etc/mysql.db.props from "jdbc:mysql:3306//wsi" to "jdbc:mysql:///wsi" and then redo the steps in section 3.2.2 of the sample application documentation in the file <JWSDP_HOME>/wsi-sampleapp/docs/index.html.

Transformer.transform(StreamSource, DOMResult) Fragments Text Nodes at Newlines

Transfomer is inserting sibling text nodes at every newline for Element content. Transformer fragments Text nodes at newlines.

To work around this problem, explictly Node.normalize() to combine multiple sibling Text nodes into a single Text node, if the schema is known ahead of time. The normalize() method on Node merges any such adjacent Text node and empty Text node into a single node for each block of text.

Work Arounds for JAXB 1.0.3-Enabled Applications Running on Application Server 8.0

The Sun Java System Application Server 8.0 contains JAXB 1.0.2 APIs, by way of its support for Java API for XML Registries (JAXR) (jaxr-impl.jar contains the JAXB APIs). This may pose a problem when running JAXB 1.0.3-enabled applications on the Application Server. The solutions differ, depending upon whether your application is standalone or web-based.

Standalone Applications

By standalone, we mean an application built and run against the Application Server file system image, as opposed to within its J2EE container. In this case, just make sure the ${APPSERVER_HOME}/lib/jaxb-*.jar files appear first in your classpath when creating your bindings and running your application.

Web-Based Applications

By Web-based, we mean an application that runs in the Application Server's J2EE container. In this case, the JAXB 1.0.2 runtime (that is, jaxr-impl.jar) appears in the server's classpath, before that of your application. This poses problems when trying to, for example:

  • Run an application using JAXB 1.0.3 bindings
  • Compile JAXB 1.0.3 bindings in the Application Server container

In this case, there are two workarounds.

  1. Add a classpath-prefix attribute to the java-config element of domain.xml (${APPSERVER_HOME}/domains/domain1/config/domain.xml, e.g.).

    This attribute should look similar to this:

    classpath-prefix="C:/Sun/AppServer/lib/jaxb-api.jar;
    C:/Sun/AppServer/lib/jaxb-impl.jar;
    C:/Sun/AppServer/lib/jaxb-libs.jar;
    C:/Sun/AppServer/lib/jaxb-xjc.jar"
    

    It is a problem that this isn't created automatically (Bug ID 5063684).

  2. Package the JAXB 1.0.3 libraries with your application and turn off classloader delegation.

    Put the libraries in the WEB-INF/lib directory. Turn off classloader delegation by including a file named sun-web.xml in your WEB-INF directory, with these contents:

    <?xml version="1.0" encoding="UTF-8"?>
    <sun-web-app>
      <class-loader delegate="false"/>
    </sun-web-app>
    

Improper Serialization of XML Attachment

If an XML document contains a document type declaration that refers to an external DTD, even though the expanded DTD contents are not part of the output, the DOCTYPE declaration is appended to the output. This problem has been logged as BugID 5061159. Also see Bug ID 4693341 for more information.

Incorrect Information in Bundled JAXP Release Notes

The bundled JAXP Release Notes incorrectly indicate that the default transformer is Xalan classic. It should be XSLTC.

Problems Packaging the JAX-RPC Application Client Example

If you install Java WSDP 1.4 and integrate it with the Application Server, there is a problem with the J2EE Tutorial's appclient example, which uses deploytool to build and add a JAR file to an EAR file. If you follow the instructions in Chapter 8, "Web Service Clients, Application Client," Step 2.i in "Packaging the Application Client," fails with the following exception:

NoClassDef Found:

com/sun/xml/rpc/spi/runtime/StubBase

That class is in the jaxrpc-spi.jar file. Deploytool does not have the correct classpath to find the JAR file.

The solution is to update the "s1as-deploytool" target in the <as.home>/lib/launcher.xml file, and add "jaxrpc-spi.jar" to the "includes" attribute of "fileset" in "classpath" element.

The updated classpath element is shown below:

<classpath>
  <fileset dir="${com.sun.aas.installRoot}/lib"
                  includes="appserv-assemblytool.jar,activation.jar,jhall.jar,
                            appserv-admin.jar,appserv-cmp.jar,appserv-rt.jar,j2ee.jar,
                            jaxrpc-impl.jar,jaxrpc-spi.jar,appserv-ext.jar,deployhelp.jar,
                            admin-cli.jar">
  </fileset>
</classpath>

The "includes" attribute must be entered as one contiguous string.

Unneeded Directory in XML & Web Services Security Interop Sample

The config directory under <jwsdp.home>/xws-security/samples/interop is not needed. You can ignore this directory and all of its contents.

Problems with the XML & Web Services Security Samples

You need to make the following changes before you can successfully run the securesimple and pingservice examples in the <jwsdp.home>/xws-security/samples directory:

  1. In the <jwsdp.home>/xws-security/samples/buildconfig/sjsas-config.xml file, delete the original .... app.classpath element definition and replace it with the following definition:
    <path id="app.classpath">
      <fileset dir="${sjsas.home}/lib/endorsed">
        <include name="dom.jar"/>
      </fileset>
      <fileset dir="${sjsas.home}/lib">
        <include name="*.jar"/>
      </fileset>
       <fileset dir="${javahome}/lib">
        <include name="tools.jar"/>
      </fileset>
    </path>
    
  2. In the <as.home>/domains/domain1/config/server.policy file, add the following configurations to the server.policy file, for the securesimple sample and pingservice samples, respectively.
    // These permissions apply to securesimple webapp
    grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/securesimple/WEB-INF/-" {
          permission javax.security.auth.AuthPermission "modifyPrincipals";
          permission javax.security.auth.AuthPermission "modifyPublicCredentials";        permission javax.security.auth.AuthPermission "modifyPrivateCredentials";
          permission javax.security.auth.AuthPermission "getSubject";
          permission javax.security.auth.PrivateCredentialPermission "javax.security.auth.x500.X500PrivateCredential * \"*\"","read";
          permission java.security.SecurityPermission "putProviderProperty.BC";
    
    };
    
    // These permissions apply to pingservice webapp
    grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/pingservice/WEB-INF/-" {
          permission javax.security.auth.AuthPermission "modifyPrincipals";
          permission javax.security.auth.AuthPermission "modifyPublicCredentials";        permission javax.security.auth.AuthPermission "modifyPrivateCredentials";
          permission javax.security.auth.AuthPermission "getSubject";
          permission javax.security.auth.PrivateCredentialPermission "javax.security.auth.x500.X500PrivateCredential * \"*\"","read";
          permission java.security.SecurityPermission "putProviderProperty.BC";
    
    };
    

 


Please send feedback on the Java Web Services Developer Pack to users@jwsdp.dev.java.net.

Copyright © 2004 Sun Microsystems, Inc. All rights reserved.

Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.