Sie sind auf Seite 1von 21

WEB SERVICES FRAMEWORK JEE ARCHITECTURE

Framework for high efficiency on execution and development

WEB SERVICE FRAMEWORK

/ / / TECHNICAL DOCUMENT

TABLE OF CONTENTS
1 2 SUMMARY ................................................................................................ 3 INTRODUCTION ........................................................................................ 4 2.1 2.2 3 4 Key features .................................................................................. 4 Technical features ........................................................................... 4

ARTIFACT COMPONENTS ........................................................................... 5 EXECUTION ENVIRONMENT........................................................................ 6 4.1 4.2 4.3 Software required ........................................................................... 6 Architecture ................................................................................... 6 Deployment ................................................................................... 7

DEVELOPMENT ENVIRONMENT ................................................................... 9 5.1 5.2 5.3 5.4 5.5 Software required ........................................................................... 9 Developing a Web service ................................................................ 9 Testing a Web service ..................................................................... 9 Versioning a Web Service .............................................................. 10 WSDL Construction ....................................................................... 10

EXAMPLES ............................................................................................. 12 6.1 6.2 6.3 6.4 SOAP Message Parser .................................................................... 12 Simple service: dateFormatterService ............................................. 13 Service using digital signature: dateFormatterService ....................... 15 Versioning services: dateFormatterServiceV2 ................................... 15

7 8

REUSABILITY CONSIDERATIONS .............................................................. 18 OPEN SOURCE COMPONENTS DETAIL ........................................................ 19 8.1 8.2 8.3 Architecture ................................................................................. 19 Deployment ................................................................................. 20 Development................................................................................ 21

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 2 l

SUMMARY
This guide details technical data and development instructions for the artifact Web services framework for high efficiency on execution and development. Following concepts are explained in this document: Core JEE architecture description Development process steps using the architecture provided Examples on developing a simple web service, a secured web service and a versioned web service Reusability considerations Open source components used description and license

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 3 l

INTRODUCTION
Although Web Services production is a well known process in IT, simple and efficient solutions are few and poor documented. This artifact provides a Spring Web Services platform able to manage a high volume of requests on execution and a framework based on Eclipse for fast and easy development. Financial Entities aims to replace traditional host systems for open architectures without loosing real performance on the change. The JEE platform in which this artifact is a key component has become in the first non-host based backend serving real time operations inside Spanish Bank computing services.

2.1

KEY FEATURES
First JEE platform serving real life requests non based on a host system Currently serving in real about 20 requests per second with mean times around 150 milliseconds per request Easy to develop and fast to execute

2.2

TECHNICAL FEATURES
Based on Spring Framework 2.0 and Spring Web Services 1.0 Currently running on Weblogic 10, but easily adaptable to the most popular JEE application servers Unique end point for every web service invocation Document-driven design of Web Services1 Easy to extend or adapt by using interceptors, hooks and XML configuration Support for: o o o WSS (stands for Web Service Signature) Web service versioning Testing

Both server and client web service view covered

When creating Web services, there are two development styles: Contract Last and Contract First. When using a contract-last or document-driven approach, you start with the Java code, and let the Web service contract be generated from that. When using contractfirst, you start with the WSDL contract, and use Java to implement said contract (extracted from Spring Web Services reference).

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 4 l

ARTIFACT COMPONENTS
Following Eclipse projects are included as deliverables for the Web Services framework artifact: WSBArchitecture. Base architecture. o o Includes architecture classes Includes a set of utilities for testing

GenXMLBeans. Development tool. WSBackend. Template deployment for Weblogic 10 o Includes developed examples DateFormatterService DateFormatterService versioned

DateFormatterServiceMock. Template test environment o Includes testing examples Simple Web Service WSS web service Versioned Web Service

Moreover, additional JAR libraries for deployment on every application server supported are provided on DeploymentTemplates folder. Note. The architecture requires Sun J2SE 5.0 or above.

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 5 l

EXECUTION ENVIRONMENT
This chapter describes the execution environment requisites and functionalities. Core architecture of this artifact is explained by describing WSBArchitecture project and deployment instructions are detailed by examining WSBackend template project.

4.1

SOFTWARE REQUIRED

Not included in this deliverable Application server: Oracle Weblogic Server 10g Included in this deliverable Web services framework: Spring Web Services 1.0.3 JEE framework: Spring Framework 2.0.2 Marshalling tool: XMLBeans 2.3 WSS tool: XWSS 3.0 WSDL tool: Wsdl4J 1.5.1 Logging: Log4J 1.2.8 Testing tool: JUnit 4.4

4.2

ARCHITECTURE

Eclipse project WSBArchitecture includes core architecture for this artifact. The architecture is distributed as a JAR Library named wsb-architecture.jar. Note that it works on several dependencies mainly described previously (Spring Web Services, Spring Framework,). Moreover, some other configuration resources, located on WSBArchitecture project folder conf, must be available on execution computer: conf/env.prop Architecture configuration file including keystore and truststore name and location, XSD validation options and XWSS configuration file location conf/security_config.xml XWSS policy configuration. The format of the policy file is documented in the Java Web Services Tutorial. conf/certs Truststore and keystore files

This artifact provides a JEE architecture based on Spring Framework and Spring Web Services which serves web services requests on one unique end point. So, no specific URL is needed for every different web service. On the other hand, document-driven design of Web Services avoids WSDL distribution or publication issues in development process. Just only an XSD file describing data contained by the request and the response is required to develop a Web Service and even this XSD file can be ignored on execution if no validation is configured. The artifact covers just only web services layer. Several JEE artifacts, such as a DAO or JPA, can be used to develop business logic relative to operations.

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 6 l

Below main functionalities are exposed: XSD validation of request and responses XML to Java Bean transformation for the requests and Java Bean to XML transformation for the responses WSS validation for the requests and WSS signature for the responses

4.3

DEPLOYMENT

Eclipse project WSBackend includes a template deployment structure for this architecture as a Web Application packed as a WAR file for Weblogic 10.

4.3.1 Web application configuration


Web application descriptor file (WebContent/WEB-INF/web.xml) defines Spring Web Services configuration resources and the context path for unique end point (by default, every request http://localhost:7001/WSBackend/services/* will be accepted).

4.3.2 Spring Web Services configuration


Spring application context file (WebContent/WEB-INF/spring-ws-servlet.xml) defines property file location and Spring Web Services configuration: Architecture configuration resources location (by default on /apps/WSB/config/env.prop) End point routing

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 7 l

Validation interceptor o Require XSD files describing web services data located in folder WebContent/WEB-INF/schemas o o By default both requests and responses are validated Require a Java class to parse the request which must implement com.wsb.springws.domain.AbstractRequestParserData (by default com.wsb.springws.domain.RequestParserData class is provided)

WSS interceptor Keystore and Trustore locations (by default truststore on /apps/WSB/config/certs/sample-truststore.jks and keystore on /apps/WSB/config/certs/sample-keystore.jks)

4.3.3 Web services catalog


Spring beans definition file (WebContent/WEB-INF/spring-ws-services.xml) includes available web services. Each bean name in this file identify the Java class which is executed to serve the request and implements architecture com.wsb.springws.services.IService interface. This file should be maintained by developers. Examples services classes dateFormatterService and dateFormatterServiceV2 are included on this file.

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 8 l

DEVELOPMENT ENVIRONMENT
5.1 SOFTWARE REQUIRED

Not included in this deliverable Development environment: Eclipse IDE for Java EE Developers Eclipse Plugin: Spring IDE Included in this deliverable Eclipse projects: WSBackend, GenXMLBeans and DateFormatterServiceMock

5.2

DEVELOPING A WEB SERVICE

Projects required: GenXMLBeans and WSBackend. Process overview: Build XSD file Generate JAR library containing XMLBeans classes Develop business logic Java code

1. XML Editor Build XSD file describing web service data.

2. Eclipse: GenXMLBeans project Copy generated XSD file to schemas folder Execute ANT script build.xml wsb-XMLBeans.jar file containing XMLBeans classes to work with the XSD file is generated on lib folder 3. Eclipse: WSBackend project Copy XSD file to folder WebContent/WEB-INF/schemas Copy XMLBeans JAR library to folder WebContent/WEB-INF/lib Include bean in Services Catalog (WebContent/WEB-INF/spring-ws-services.xml) Develop business logic code in package com.wsb.springws.services by implementing base interface com.wsb.springws.services.IService

5.3

TESTING A WEB SERVICE

Projects required: DateFormatterServiceMock. Process overview: Copy XMLBeans JAR Library to folder lib Develop JUnit class code by extending base class com.wsb.springws.services.mock.util.AbstractTest Run JUnit tests

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 9 l

5.4

VERSIONING A WEB SERVICE

Projects required: GenXMLBeans and WSBackend. Process overview: Build XSD file Generate JAR library containing XMLBeans classes Develop business logic Java code

1. XML Editor Build XSD file describing web service data including version number in front of namespaces. o For instance, http://beans.springws.eds.com namespace should change for http://v2.beans.springws.eds.com Perform desired modifications on XSD file

2. Eclipse: GenXMLBeans project Copy generated XSD file to schemas folder Execute ANT script build.xml wsb-XMLBeans.jar file containing XMLBeans classes to work with the XSD file is generated on lib folder 3. Eclipse: WSBackend project Copy XSD file to folder WebContent/WEB-INF/schemas Copy XMLBeans JAR library to folder WebContent/WEB-INF/lib Include bean in Services Catalog (WebContent/WEB-INF/spring-ws-services.xml) Develop business logic code in package com.wsb.springws.services.vN by implementing base interface com.wsb.springws.services.IService or extending previous version service

5.5

WSDL CONSTRUCTION

Projects required: WSBackend. Process overview: Modify Spring application context file (spring-ws-servlet.xml) Access WSDL URL

Although this artifact does not require any WSDL file, a service contract is generally expressed as a WSDL file. If WSDL publication is required, following steps must be included in any service construction. On the other hand, if its just only required WSDL distribution, this process belongs exclusively to development phase.

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 10 l

1. Modify Spring application context file Include this entry on the spring-ws-servlet.xml file

<bean id="DateFormatterService" class="org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition"> <property name="builder"> <bean class="org.springframework.ws.wsdl.wsdl11.builder. XsdBasedSoap11Wsdl4jDefinitionBuilder"> <property name="schema" value="/WEB-INF/schemas/dateFormatterService.xsd"/> <property name="portTypeName" value="DateFormatterService"/> <property name="locationUri" value="http://localhost:7001/WSBackend/services"/> </bean> </property> </bean> The bean id determines the URL where the WSDL can be retrieved. In this case, the bean id is DateFormatterService, which means that the WSDL can be retrieved as DateFormatterService.wsdl in the servlet context. Remember to start bean id name with a capital letter in order to not override services names. The schema property is set to the Date Formatter Service schema we located on WEBINF directory of the application. Next, we define the WSDL port type to be DateFormatterService. Finally, we set the location where the service can be reached: http://localhost:7001/WSBackend/services. For development, this will suffice, but obviously we need to change this to production URL when going live. A common way to accomplish this is to use a Spring PropertyPlaceholderConfigurer. 2. Access WSDL URL Publish the application on the application server WSDL file will be accessible at
http://localhost:7001/WSBackend/services/dateFormatterService/DateFormatterService.wsdl

o o

Use web services context path http://localhost:7001/WSBackend/services And complete with bean_id_name/bean_id_name.wsdl

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 11 l

EXAMPLES
6.1 SOAP MESSAGE PARSER

Typically, once per project, a SOAP Message parser must be implemented in WSBackend project. This class extends from com.wsb.springws.domain.AbstractRequestParserData and it must be assigned to validatingInterceptor on deployment configuration file WebContent/WEB-INF/spring-ws-servlet.xml. All Web Services implemented using this artifact must contain on the request parameters the following information: Message Type. Name of the service to invoke, the name registered in the services catalog Version. Number of version of the service to invoke Secured. If true WSS validation and signature will be performed on web service

This information is required to invoke business logic class automatically.

In the example, a DTD including an element named requestHeader has been defined. <!ELEMENT ts:dateFormatterServiceRequest (ts:requestHeader)> <!ELEMENT ts:requestHeader (ts:MessageType, ts:Version, ts:Secured?)> <!ELEMENT ts:MessageType EMPTY> <!ELEMENT ts:Version EMPTY> <!ELEMENT ts:Secured (#PCDATA)>

And com.wsb.springws.domain.RequestParserData class has been implemented. public class RequestParserData extends AbstractRequestParserData { // XSD Request private static private static private static private static fields names final String final String final String final String XSD_REQUEST_HEADER_ID = "requestHeader"; XSD_MESSAGE_TYPE_ID = "MessageType"; XSD_VERSION_ID = "Version"; XSD_SECURED_ID = "Secured";

/** * Default constructor. Not secured by default. */ public RequestParserData() { this.setSecured(false); } /** * Get <CODE>messageType</CODE>, <CODE>version</CODE> and * <CODE>secured</CODE> fields from message payload. * * @param domSource * message payload source */ public void init(DOMSource domSource) { // Default behavior this.setSecured(false);

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 12 l

try { StringWriter strWtr = new StringWriter(); StreamResult strResult = new StreamResult(strWtr); TransformerFactory tfac = TransformerFactory.newInstance(); Transformer trans = tfac.newTransformer(); trans.transform(domSource, strResult); NodeList nodeList = domSource.getNode().getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (XSD_REQUEST_HEADER_ID.equals(node.getLocalName())) { NodeList elements = node.getChildNodes(); for (int j = 0; j < elements.getLength(); j++) { Node element = elements.item(j); String elementName = element.getLocalName(); if (elementName != null) { if (XSD_MESSAGE_TYPE_ID.equals(elementName)) { this.setMessageType(element.getFirstChild() .getNodeValue()); } else if (XSD_VERSION_ID.equals(elementName)) { this.setVersion(element.getFirstChild() .getNodeValue()); } else if (XSD_SECURED_ID.equals(elementName)) { this.setSecured(Boolean.valueOf(element .getFirstChild().getNodeValue())); } } } } } } catch (Exception e) { e.printStackTrace(); } } }

6.2

SIMPLE SERVICE: DATEFORMATTERSERVICE

1. XSD file dateFormatterService.xsd according to requestHeader DTD <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ts="http://beans.springws.eds.com" targetNamespace="http://beans.springws.eds.com" elementFormDefault="qualified" attributeFormDefault="qualified"> <element name="dateFormatterServiceRequest"> <complexType> <sequence> <element name="requestHeader"> <complexType> <sequence> <element name="MessageType" type="string" /> <element name="Version" type="string" /> <element name="Secured" type="boolean" minOccurs="0" /> </sequence> </complexType> </element> <element name="requestBody"> <complexType> <sequence> <element name="datePattern" type="string" />

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 13 l

</sequence> </complexType> </element> </sequence> </complexType> </element> <element name="dateFormatterServiceResponse"> <complexType> <sequence> <element name="responseHeader"> <complexType> <sequence> <element name="MessageType" type="string" /> <element name="Version" type="string" /> <element name="CodResp" type="string" /> <element name="DescResp" type="string" /> </sequence> </complexType> </element> <element name="responseBody"> <complexType> <sequence> <element name="dateString" type="string" /> </sequence> </complexType> </element> </sequence> </complexType> </element> </schema> 2. JAR Library wsb-XMLBeans.jar generated with GenXMLBeans Eclipse project 3. Steps in WSBackend project Copy dateFormatterService.xsd to folder WebContent/WEB-INF/schemas Copy wsb-XMLBeans.jar to folder WebContent/WEB-INF/lib Include dateFormatterService bean in Services Catalog (WebContent/WEBINF/spring-ws-services.xml) <bean id="dateFormatterService" class="com.wsb.springws.services.DateFormatter" /> Implement business logic Java class com.wsb.springws.services.DateFormatter

4. Date formatter service tests in DateFormatterServiceMock project Copy dateFormatter-XMLBeans.jar to folder WEB-INF/lib Implement test class com.wsb.springws.services.mock.DateFormatterServiceMock Below a sample from test class code

DateFormatterServiceRequestDocument opeRequest; @Before public void setUp() throws Exception { opeRequest = DateFormatterServiceRequestDocument.Factory.newInstance(); DateFormatterServiceRequest dfsReq = opeRequest.addNewDateFormatterServiceRequest(); RequestHeader rh = dfsReq.addNewRequestHeader(); rh.setMessageType("DateFormatterService"); rh.setVersion("1"); RequestBody rb = dfsReq.addNewRequestBody(); rb.setDatePattern("dd"); }

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 14 l

@Test public void testInvoke() { DateFormatterServiceResponseDocument opeResponse = (DateFormatterServiceResponseDocument)WSClient.invoke(opeRequest); testAssertEquals("001", opeResponse .getDateFormatterServiceResponse() .getResponseHeader() .getCodResp()); }

6.3

SERVICE USING DIGITAL SIGNATURE: DATEFORMATTERSERVICE

In order to use WSS for a web service, no modification must be performed. Just only setting Secure field to true on test class, WSS functionality is achieved. Below a sample code from test class com.wsb.springws.services.mock.DateFormatterServiceMock: DateFormatterServiceRequestDocument opeRequestSecured; @Before public void setUpSecured() throws Exception { opeRequestSecured = DateFormatterServiceRequestDocument.Factory.newInstance(); DateFormatterServiceRequest dfsReq = opeRequestSecured.addNewDateFormatterServiceRequest(); RequestHeader rh = dfsReq.addNewRequestHeader(); rh.setMessageType("DateFormatterService"); rh.setVersion("1"); rh.setSecured(true); RequestBody rb = dfsReq.addNewRequestBody(); rb.setDatePattern("dd"); } @Test public void testInvokeSecured() { DateFormatterServiceResponseDocument opeResponse = (DateFormatterServiceResponseDocument)XWSSClient.invoke(opeRequestSecured); testAssertEquals("001", opeResponse .getDateFormatterServiceResponse() .getResponseHeader() .getCodResp()); }

6.4

VERSIONING SERVICES: DATEFORMATTERSERVICEV2

1. XSD file dateFormatterServiceV2.xsd according to requestHeader DTD <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ts="http://v2.beans.springws.eds.com" targetNamespace="http://v2.beans.springws.eds.com" elementFormDefault="qualified" attributeFormDefault="qualified"> <element name="dateFormatterServiceRequest"> <complexType> <sequence> <element name="requestHeader"> <complexType> <sequence> <element name="MessageType" type="string" /> <element name="Version" type="string" /> <element name="Secured" type="boolean" minOccurs="0" />

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 15 l

</sequence> </complexType> </element> <element name="requestBody"> <complexType> <sequence> <element name="datePattern" type="string" /> <element name="locale" type="string" /> </sequence> </complexType> </element> </sequence> </complexType> </element> <element name="dateFormatterServiceResponse"> <complexType> <sequence> <element name="responseHeader"> <complexType> <sequence> <element name="MessageType" type="string" /> <element name="Version" type="string" /> <element name="CodResp" type="string" /> <element name="DescResp" type="string" /> </sequence> </complexType> </element> <element name="responseBody"> <complexType> <sequence> <element name="dateString" type="string" /> <element name="rawDateString" type="string" /> </sequence> </complexType> </element> </sequence> </complexType> </element> </schema> 2. JAR Library wsb-XMLBeans.jar updated with GenXMLBeans Eclipse project 3. Steps in WSBackend project Copy dateFormatterServiceV2.xsd to folder WebContent/WEB-INF/schemas Update wsb-XMLBeans.jar to folder WebContent/WEB-INF/lib Include dateFormatterServiceV2 bean in Services Catalog (WebContent/WEBINF/spring-ws-services.xml) <bean id="dateFormatterServiceV2" class="com.wsb.springws.services.v2.DateFormatter" /> Implement business logic Java class com.wsb.springws.services.v2.DateFormatter

4. Date formatter service tests in DateFormatterServiceMock project Update wsb-XMLBeans.jar to folder WEB-INF/lib Implement test class com.wsb.springws.services.mock.DateFormatterServiceV2Mock Below a sample from test class code (note that version field is set to 2)

DateFormatterServiceRequestDocument opeRequest; @Before public void setUp() throws Exception { opeRequest = DateFormatterServiceRequestDocument.Factory.newInstance();

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 16 l

DateFormatterServiceRequest dfsReq = opeRequest.addNewDateFormatterServiceRequest(); RequestHeader rh = dfsReq.addNewRequestHeader(); rh.setMessageType("DateFormatterService"); rh.setVersion("2"); RequestBody rb = dfsReq.addNewRequestBody(); rb.setDatePattern("dd"); rb.setLocale(Locale.ENGLISH.toString()); } @Test public void testInvoke() { DateFormatterServiceResponseDocument opeResponse = (DateFormatterServiceResponseDocument)WSClient.invoke(opeRequest); testAssertEquals("001", opeResponse .getDateFormatterServiceResponse() .getResponseHeader() .getCodResp()); }

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 17 l

REUSABILITY CONSIDERATIONS
Currently, common application servers are supported: Oracle Weblogic 10 o Project: WSBackend without modifications

SUN Glassfish 2.1 o Project: WSBackend without modifications

IBM WebSphere 6.1. Project WSBackend adding following libraries: o Project: WSBackend adding following libraries (located on DeploymentTemplates folder) jaxp-api.jar JSR 206 Java(TM) API for XML Processing 1.4.2

jaxp-ri.jar Java API for XML Processing 1.4.2

jsr173_1.0_api.jar Streaming API for XML 1.0 (StAX)

saaj-api.jar SAAJ for Java 1.3

saaj-impl.jar SOAP with Attachments API for Java 1.3

Apache Tomcat 6.0. Project WSBackend adding following libraries: o Project: WSBackend adding following libraries (located on DeploymentTemplates folder) spring-oxm-tiger-1.0.3.jar Spring O/X Mapping - Java 6

spring-ws-core-tiger-1.0.3.jar Spring WS Core - Java 6

saaj-api.jar SAAJ for Java 1.3

saaj-impl.jar SOAP with Attachments API for Java 1.3

Further information for another application server configuration can be found at Spring WS FAQ.

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 18 l

OPEN SOURCE COMPONENTS DETAIL


8.1

ARCHITECTURE
Spring Web Services o Developed by the Spring community, Spring Web Services (Spring-WS) focuses on creating document-driven Web services. It aims to facilitate contract-first SOAP service development, allowing for the creation of flexible Web services. Benefits and features include: Developers can distribute an incoming XML request to any object, depending on message payload, SOAP Action header, or an XPath expression. Incoming XML messages can be handled in standard JAXP APIs such as DOM, SAX, and StAX or in JDOM, dom4j, XOM, or even marshalling technologies. o o Very manageable learning curve for developers familiar with Spring. Supports WS-Security. Integrated with Spring Security.

Licensed under Apache License (v2) Homepage: http://static.springframework.org/spring-ws/site

Spring Framework o Spring is a lightweight Java/J2EE application framework based on code published in "Expert One-on-One J2EE Design and Development" by Rod Johnson. It includes powerful JavaBeans-based configuration management applying Inversion-of-Control principles, a generic abstraction layer for transaction management allowing for pluggable transaction managers, a JDBC abstraction layer, integration with Hibernate, JDO, Apache OJB, and iBATIS SQL Maps, AOP functionality, and a flexible MVC Web application framework with multiple view technologies. There is also a .NET port available. o o Licensed under Apache License (v2) Homepage: http://www.springframework.org

XMLBeans o o XMLBeans is a technology for accessing XML by binding it to Java types. XMLBeans provides several ways to get at the XML, including: Through XML schema that has been compiled to generate Java types that represent schema types. In this way, you can access instances of the schema through JavaBeans-style accessors after the fashion of "getFoo" and "setFoo". The XMLBeans API also allows you to reflect into the XML schema itself through an XML Schema Object model. o o A cursor model through which you can traverse the full XML infoset. Support for XML DOM

Licensed under Apache License (v2) Homepage: http://xmlbeans.apache.org/

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 19 l

XWSS o XML and Web Services Security (XWS-Security), provides a framework within which a JAX-WS or SAAJ application developer can secure applications. XWSS is also available from java.net's XWSS project. XWSS 3.0 has a whole lot of new features including realignment with JAXWS 2.1 architecture which gives an impoved performance. Using the XWS-Security framework, developers of JAXWS can secure their applications by configuring the request and response security policies at the level of service, port, or operation. o XWSS also supports WS-Policy, WS-SecurityPolicy, WS-Trust and WSSecureConversation. Please refer to the WSIT project for additional details. WSIT is also a part of Project Glassfish.Certification Passed o Licensed under Common Development and Distribution License (CDDL) and GNU General Public License (GPL) o Homepage: https://xwss.dev.java.net

Wsdl4J o The Web Services Description Language for Java Toolkit (WSDL4J) allows the creation, representation, and manipulation of WSDL documents. Is the reference implementation for JSR110 'JWSDL' (jcp.org). o o Licensed under Common Public License (CPL) Homepage: http://www.sourceforge.net/projects/wsdl4j

Log4j o log4j is a Java-based logging utility, and is one of many projects from the Apache Software Foundation. It is used primarily as a debugging tool. o o Licensed under Apache License (v2) Homepage: http://logging.apache.org/log4j/

JUnit o JUnit is a Java testing framework. Since testing is not closely integrated with development, it prevents you from measuring the progress of development. You can't tell when something starts working or when something stops working. Using JUnit you can cheaply and incrementally build a test suite that will help you measure your progress, spot unintended side effects, and focus your development efforts. o o Licensed under Common Public License (CPL) Homepage: http://www.junit.org

8.2

DEPLOYMENT 8.2.1 WebSphere 6.1


JAXP o The Java API for XML Processing (JAXP) enables applications to parse and transform XML documents independent of a particular XML processing implementation.

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 20 l

JAXP supports the processing of XML documents using DOM, SAX, and XSLT. The project facilitates the use of XML on the Java platform, and provides a pluggability feature which enables applications to easily switch between different XML processor implementations. Licensed under Common Development and Distribution License (CDDL) Homepage: http://java.sun.com/webservices/jaxp/index.jsp

o o

JSR 173 o o o Sun Java Streaming XML Parser, Sun implementation of Stax (JSR 173) Licensed under Common Development and Distribution License (CDDL) Homepage: https://sjsxp.dev.java.net

SAAJ o The Standard Implementation for SAAJ. The SAAJ specification provides the lower layers of the JAX-RPC specification and the SAAJ project is a companion to the JAX-RPC project. o o Licensed under Common Development and Distribution License (CDDL) Homepage: https://saaj.dev.java.net/

8.3

DEVELOPMENT
Eclipse o The Eclipse platform is a generic foundation for an IDE. That is, the platform is an IDE without any particular programming language in mind. You can create generic projects, edit files in a generic text editor, and share the projects and files with a repository server. o o Licensed under Common Public License (CPL) and Eclipse Public License (EPL) Homepage: http://www.eclipse.org

Spring IDE o o o Spring IDE provides tooling support for the Spring Portfolio. Licensed under Eclipse Public License (EPL) Homepage: http://springide.org

/ / / WEB SERVICES FRAMEWORK - JEE

02 06 2008

l 21 l

Das könnte Ihnen auch gefallen