Using JAX-WS and JAXB with WebLogic Server 10by Mike Wooten AbstractJAX-WS (Java Architecture for Web Services) is a standards-based API for coding, assembling, and deploying Java Web services, designed to replace JAX-RPC. JAXB (Java Architecture for XML Binding) is a Java/XML binding technology. JAX-WS uses JAXB to handle all the Java binding chores. This article provides an overview of the JAX-WS 2.0 and JAXB 2.0 support in BEA WebLogic Server 10.1. I include sample code to get you started. Very Busy Java Developer's Guide to JAXB 2.0JAX-WS uses JAXB to handle all the Java binding chores, so I will primarily be discussing JAXB as it relates to JAX-WS. A skilled Java developer is typically also a very busy one. This being the case, I'll limit the discussion to:
For those of you who are too busy to even read this article, feel free to just go ahead and download the article's Download sample code. There is a README file inside the zip, which walks you through all the steps to get things working. What Kind of Stuff Can You Do with JAXB 2.0?Here's a list of some of the more interesting stuff you can do with JAXB 2.0. This is not to say that you can't do the same things with other Java-to-XML/XML-to-Java binding technologies. It's merely stating what you can do with JAXB 2.0:
What Kind of Stuff Can't You Do with JAXB 2.0?Here's a list of some of the stuff you can't (or I didn't see a way how to) do with JAXB 2.0:
Sample POJO JAX-WS Web Service that Uses JAXB for Java BindingJAX-WS is a standards-based API for coding, assembling, and deploying Java Web services. It uses JAXB to handle all the Java binding chores associated with this. JAX-WS 2.0/2.1 doesn't support the use of JAX-RPC or Apache Beehive XMLBean types—just JAXB ones. JAX-WS provides two programming models for developing a Web service endpoint:
The remainder of the article walks through the process of creating, deploying, and testing a sample POJO-based (Plain-Old
Java Object) JAX-WS Web service endpoint, named Creating the Customization FileThe first step involves creating a JAX-WS customization file. This doubles as a JAXB binding customization file, and allows you to control the JAX-WS and JAXB build-time processes, as well as the artifacts produced by them. The customization file is an XML document that conforms to the XML schemas for the The JAX-WS customization file for this
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bindings
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns="http://java.sun.com/xml/ns/jaxws"
wsdlLocation="DataStagingService2.wsdl"
>
<bindings
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
node="wsdl:definitions"
>
<package name="services.datastaging">
<jxb:javadoc>
<![CDATA[<body>Package level documentation for generated
package services.datastaging.</body>]]>
</jxb:javadoc>
</package>
<jxb:schemaBindings>
<jxb:package name="com.acmeworld.irad.services.datastaging"/>
</jxb:schemaBindings>
</bindings>
</bindings>
I basically just use the customization file to control the Java package name of classes that are generated. You can do a lot more than this in one of these files, so be sure to check out JAX-WS 2.0 Beta Customizations. The next listing contains the XML Schema used in the WSDL, for the
<xs:schema
targetNamespace="http://services.irad.acmeworld.com/datastaging"
xmlns:tns="http://services.irad.acmeworld.com/datastaging"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
>
<xs:complexType name="DataStaging">
<xs:sequence>
<xs:element name="inputURIs">
<xs:complexType>
<xs:sequence>
<xs:element name="inputURI" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="uri" type="xs:anyURI"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DataStagingResponse">
<xs:sequence>
<xs:element name="outputURIs">
<xs:complexType>
<xs:sequence>
<xs:element name="outputURI" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="uri" type="xs:anyURI"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="dataStaging" type="tns:DataStaging"/>
<xs:element name="dataStagingResponse" type="tns:DataStagingResponse"/>
</xs:schema>
The XML Schema section from this WSDL is pretty normal-looking. It's your basic garden variety,
global |
Article Tools Related Products Check out the products mentioned in this article:Related Technologies Related Articles Bookmark Article
|