|
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.
- 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).
- 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:
- 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>
- 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.
|