You are on page 1of 2

1. The SOAP has only the request/response from the WSDL. There is no operation etc. 2.

On the client side and server side the actaul WSDL operation is front-ended by a proxy java implementaion class(SEI). On the client side the SEI converts the java object to SOAP request. 3. Within the web services container in the application server, you could have many endpoints with each having it's own wsdl(each wsdl could have many operations). Inside the WSDL each operation is called a web service. WSDL: <definitions.....> <types> <schema elementFormDefault="qualified" targetNamespace="http://soabook.com/wrapper" <element name="customerPurchase"> <complexType> <sequence> <element ref="imported:customer"/> <element ref="imported:po"/> </sequence> </complexType> </element> </schema> </types> <message name="onCustomerPurchase"> <part element="wrapper:customerPurchase" name="purchase"/> </message> <portType name="CustomerPurchase"> <operation name="processCustomerPurchase"> <input message="soa:onCustomerPurchase" </operation> </portType> </definition> Client: package com.soabook; import com.soabook.sales.Customer; import com.soabook.purchasing.PurchaseOrder; public interface PurchaseTransactions { public void newPurchase((Customer cust, PurchaseOrder po); ... } The purchase transaction is a proxy(SEI) to the actual webserivice. The newPurchase( ) proxy method binds to the actual processCustomerPurchase( ) method of the WSDL. The newPurchase( ) method takes the customer object, and the PurchseOrder object and then sends it to the serialization subsystem(eg jaxb)which will look at the WSDL and give back the imported:customer, imported:po marshaled xml pieces within the message onCustomerPurchase and then the newPurchase( ) proxy would create the Soap envelope and send it to server side. If you see the soap message would only have onCustomerPurcahase message input embedded within its envelope. The subsystem responsible for creating this marshaling of the operation input parameters is called the Serialization Subsystem. On the server side the there sits a java proxy interface sitting in front of the actual web service interface which takes the incoming xml request parameter which is then unmarsalled to the appropriate input java object and the proper target method is invoked. Summary: To summarize, the Web Services Platform Architecture (WSPA) defines

three subsystems: invocation, serialization, and deployment.

When using Web Services, interface definitions are defined using WSDL [WSDL 1.1, WSDL 2.0]. SOAP messages can be used to carry the input and output parameters specified by the WSDL interface definition. So, Web Services provide two key ingredients needed for SOA development: an interface definition language (WSDL) and a messaging standard (SOAP). SOAP messages can be exchanged over a variety of transports (http, jms, smtp). 4.Jax-WS, Jax-B each have annotations that can be applied on java objects. Jax-ws annotations can be used on the java method level that will affect the tags in the wsdl while jaxb annotations van be applied to the input/output operations that would affect the operation parameters of the wsdl. 5. Remember that its the JAX-WS implementation that is responsible to pull out the operation parameter from the SOAP request. An then it passes the xml snippet to JAXB for unmarshalling. Once the objects are returned its the job of Jax-WS to call the target operation with the input parameters. Wen the reverse happens it is the JAX-WS implementation that is responsible for embedding the xml into SOAP.

You might also like