• No results found

Module 13 Implementing Java EE Web Services with JAX-WS

N/A
N/A
Protected

Academic year: 2021

Share "Module 13 Implementing Java EE Web Services with JAX-WS"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Module 13

Implementing

Java EE Web Services

with JAX-WS

JA X -W S 13

Describe endpoints supported by Java EE 5

Describe the requirements of the JAX-WS servlet

endpoints

Describe the requirements of JAX-WS EJB endpointsDevelop web service clients

(2)

331 Ω Omega

Developing Applications for Java EE Platform

JA

X

-W

S

13

A web service endpoint is the component that executes as a result of sending a SOAP message to an application server. The Java EE 5 components that can function as endpoints are:

• Servlet components

• Stateless session bean components

Both JAX-WS and JAX-RPC endpoints can be used in Java EE 5. Web services currently under development should use JAX-WS. JAX-WS is an update of JAX-RPC and it simplifies creating and using web services.

Web Service Endpoint Types

Supported by Java EE 5

JA X -W S 13

A JAX-WS endpoint is not a servlet in the traditional sense. The JAX-WS framework provides a servlet implementation used to handle HTTP requests and process SOAP messages. A JAX-WS web endpoint:

• Is a standard Java class created just to provide web server functionality

• Is multi-threaded

• Does not require an EJB container

(3)

333 Ω Omega

Developing Applications for Java EE Platform

JA

X

-W

S

13

A JAX-WS web endpoint:

• Has a @javax.jws.WebServiceclass annotation

• Contains business methods that are public and not final or static

• Has exposed web service methods that are annotated with @javax.jws.WebMethod

• Cannot be an abstract or final class

• Requires a default no-arg constructor

Implementing a JAX-WS Servlet Endpoint

JA X -W S 13 package example; import javax.jws.*; @WebService

public class SayHello { @WebMethod

public String getGreeting(String name) { return "Hello " + name;

}

(4)

335 Ω Omega

Developing Applications for Java EE Platform

JA

X

-W

S

13

The web.xmlfile in your web archive (WAR) must be updated to provide a usable URL for the web service. <servlet>

<servlet-name>hello</servlet-name>

<servlet-class>example.SayHello</servlet-class> <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>hello</servlet-name> <url-pattern>/sayhello</url-pattern> </servlet-mapping>

JAX-WS Servlet Endpoint Configuration

JA

X

-W

S

13

Only stateless session beans can be a JAX-WS EJB endpoint. As with web JAX-WS endpoints, the application sever

provides support for HTTP and SOAP processing, typically with a servlet. A stateless session bean endpoint:

• Is typically an existing session bean already in use by your application.

• Is turned into a web service. Session bean-based web services allow for non-Java client applications.

• Requires an EJB container

(5)

337 Ω Omega

Developing Applications for Java EE Platform

JA

X

-W

S

13

A JAX-WS EJB endpoint:

• Has a @javax.jws.WebService class annotation

• Contains business methods that are public and not final or static

• Has exposed web service methods that are annotated with @javax.jws.WebMethod

• Cannot be an abstract or final class

• Requires a default no-arg constructor

• Must be a stateless session bean

JAX-WS EJB Endpoints

JA X -W S 13 import javax.ejb.*; import javax.jws.*;

@WebService @Stateless @Remote

public class SayHelloBean

implements SayHelloInterface { @WebMethod

public String getGreeting(String name) { return "Hello " + name;

}

(6)

339 Ω Omega

Developing Applications for Java EE Platform

JA

X

-W

S

13

JAX-WS endpoints, both web and EJB, can have optional life- cycle methods that are automatically called if present. Any method can be used as a life-cycle method with the correct annotation:

• @PostConstruct– Called by the container before the implementing class begins responding to web service clients.

• @PreDestroy– Called by the container before the endpoint is removed from operation.

JAX-WS Endpoint Life Cycle

JA

X

-W

S

13

Unlike the JAX-PRC, the JAX-WS does not specify a Java-to-XML binding for data types. The JAXB is specified by JAX-WS as the way in which Java data is converted back and forth to XML.

Basic Java types, such as Strings are supported automatically. However, to return or pass complex object instances, some JAXB programming is required.

(7)

341 Ω Omega

Developing Applications for Java EE Platform

JA

X

-W

S

13

The key to creating a web service client, in any language, is having a copy of the web service’s WSDL. The WSDL

describes the operations, arguments, and return values used in a web service.

The WSDL for a JAX-WS web service is generated automatically when the web service is deployed. Although not part of the specification, to retrieve the

generated WSDL from the Sun Application Server, you can use your browser by requesting a URL similar to:

http://localhost:8080/WSApp-war/SayHelloService?WSDL

Web Service Clients

JA

X

-W

S

13

To access a web service from a JAX-WS client you need:

• The WSDL

• A Proxy object to handle the creation of SOAP

messages and HTTP communication. This proxy type class is know as a Port in JAX-WS.

• To generate the Port class or source code and any other required artifacts for the web service.

The JAX-WS reference implementation and the Sun Java Application Server provide an application known as

wsimportto create all the required client code.

Developing JAX-WS Clients

(8)

343 Ω Omega

Developing Applications for Java EE Platform

JA

X

-W

S

13

In the following example, the Service class is used to instantiate a Port or proxy. The Port handles all SOAP message creation and transmission.

import javax.xml.ws.WebServiceRef; public class WSTest {

public WSTest() { }

public static void main(String[] args) {

SayHelloService service = new SayHelloService();

SayHello port = service.getSayHelloPort(); System.out.println(port.sayHello(“Duke”)); }

}

A JAX-WS Client Example

JA

X

-W

S

13

A JAX-WS web service can be called by any client or platform. The client must:

• Have access to the WSDL file

• Support the correct version of the SOAP specification. For maximum compatibility, the client should support the WS-I Basic Profile 1.1.

References

Related documents

For launch vehicle conceptual design, trajectory optimization is typically performed using one of two tools: Program to Optimize Simulated Trajectories (POST) and Optimal

[r]

Fibrous plaster is typically prepared and painted using the same techniques and systems as paper-faced plasterboard, with one exception; Resene Sureseal should be preferred as

11.4 On-line Access - The Supplier will provide password protected on-line access, for approx 20 BBC authorised staff, to live information on permitted vehicles, including but

Kentucky Rule 1.15 (d) provides Ò A lawyer may deposit funds in an account for the limited purpose of minimizing bank charges.Ó I doubt if this provision was imple- mented with

‰ Office furniture for lawyer(s), staff, reception area, file cabinets, conference, room furniture, carpeting and area rugs, book shelves, art work/office decorating needs. ‰

She speaks in the name of our Lord through the voice of Pope Pius X, the Pope of the Eucharist, “All the faithful, married or single, young or old, even children from the time of

Implementing the distributed storage strategy results in a significant reduction in total flood volume at all pipe failure levels implying the effect of cumulative pipe