org.apache.axis2.jaxws.client.proxy
Class JAXWSProxyHandler

java.lang.Object
  extended by org.apache.axis2.jaxws.BindingProvider
      extended by org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler
All Implemented Interfaces:
java.lang.reflect.InvocationHandler, BindingProvider

public class JAXWSProxyHandler
extends BindingProvider
implements java.lang.reflect.InvocationHandler

ProxyHandler is the java.lang.reflect.InvocationHandler implementation. When a JAX-WS client calls the method on a proxy object, created by calling the ServiceDelegate.getPort(...) method, the inovke method on the ProxyHandler is called.

ProxyHandler uses EndpointInterfaceDescriptor and finds out if 1) The client call is Document Literal or Rpc Literal 2) The WSDL is wrapped or unWrapped.

ProxyHandler then reads OperationDescription using Method name called by Client From OperationDescription it does the following 1) if the wsdl isWrapped() reads RequestWrapper Class and responseWrapperClass 2) then reads the webParams for the Operation.

isWrapped() = true and DocLiteral then ProxyHandler then uses WrapperTool to create Request that is a Wrapped JAXBObject. Creates JAXBBlock using JAXBBlockFactory Creates MessageContext->Message and sets JAXBBlock to xmlPart as RequestMsgCtx in InvocationContext. Makes call to InvocationController. Reads ResponseMsgCtx ->MessageCtx->Message->XMLPart. Converts that to JAXBlock using JAXBBlockFactory and returns the BO from this JAXBBlock.

isWrapped() != true and DocLiteral then ProxyHandler creates the JAXBBlock for the input request creates a MessageContext that is then used by IbvocationController to invoke. Response is read and return object is derived using @Webresult annotation. A JAXBBlock is created from the Response and the BO from JAXBBlock is returned.


Field Summary
protected  InvocationController controller
           
protected  ServiceDescription serviceDesc
           
 
Fields inherited from class org.apache.axis2.jaxws.BindingProvider
endpointDesc, requestContext, responseContext, serviceDelegate
 
Fields inherited from interface javax.xml.ws.BindingProvider
ENDPOINT_ADDRESS_PROPERTY, PASSWORD_PROPERTY, SESSION_MAINTAIN_PROPERTY, SOAPACTION_URI_PROPERTY, SOAPACTION_USE_PROPERTY, USERNAME_PROPERTY
 
Constructor Summary
JAXWSProxyHandler(ServiceDelegate delegate, java.lang.Class seiClazz, EndpointDescription epDesc, EndpointReference epr, java.lang.String addressingNamespace, WebServiceFeature... features)
           
JAXWSProxyHandler(ServiceDelegate delegate, java.lang.Class seiClazz, EndpointDescription epDesc, WebServiceFeature... features)
           
 
Method Summary
protected  MessageContext createRequest(java.lang.reflect.Method method, java.lang.Object[] args)
          Creates a request MessageContext for the method call.
protected  java.lang.Object createResponse(java.lang.reflect.Method method, java.lang.Object[] args, MessageContext responseContext, OperationDescription operationDesc)
          Creates a response MessageContext for the method call.
protected static java.lang.Throwable getFaultResponse(MessageContext msgCtx, OperationDescription opDesc)
           
 java.lang.Class getSeiClazz()
           
protected static boolean hasFaultResponse(MessageContext mc)
           
 java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
           
protected  boolean isAsync()
           
 void setSeiClazz(java.lang.Class seiClazz)
           
 
Methods inherited from class org.apache.axis2.jaxws.BindingProvider
checkMaintainSessionState, getBinding, getEndpointDescription, getEndpointReference, getEndpointReference, getRequestContext, getResponseContext, getServiceDelegate, setupSessionContext, useSoapAction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serviceDesc

protected ServiceDescription serviceDesc

controller

protected InvocationController controller
Constructor Detail

JAXWSProxyHandler

public JAXWSProxyHandler(ServiceDelegate delegate,
                         java.lang.Class seiClazz,
                         EndpointDescription epDesc,
                         WebServiceFeature... features)

JAXWSProxyHandler

public JAXWSProxyHandler(ServiceDelegate delegate,
                         java.lang.Class seiClazz,
                         EndpointDescription epDesc,
                         EndpointReference epr,
                         java.lang.String addressingNamespace,
                         WebServiceFeature... features)
Method Detail

invoke

public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.reflect.Method method,
                               java.lang.Object[] args)
                        throws java.lang.Throwable
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Throws:
java.lang.Throwable

isAsync

protected boolean isAsync()

createRequest

protected MessageContext createRequest(java.lang.reflect.Method method,
                                       java.lang.Object[] args)
                                throws java.lang.Throwable
Creates a request MessageContext for the method call. This request context will be used by InvocationController to route the method call to axis engine.

Parameters:
method - - The method invoked on the proxy object.
args - - The parameter list
Returns:
A MessageContext that can be used for the invocation
Throws:
java.lang.Throwable

createResponse

protected java.lang.Object createResponse(java.lang.reflect.Method method,
                                          java.lang.Object[] args,
                                          MessageContext responseContext,
                                          OperationDescription operationDesc)
                                   throws java.lang.Throwable
Creates a response MessageContext for the method call. This response context will be used to create response result to the client call.

Parameters:
method - - The method invoked on the proxy object.
args - - The parameter list.
responseContext - - The MessageContext to be used for the response.
operationDesc - - The OperationDescription that for the invoked method.
Returns:
Throws:
java.lang.Throwable

getFaultResponse

protected static java.lang.Throwable getFaultResponse(MessageContext msgCtx,
                                                      OperationDescription opDesc)

hasFaultResponse

protected static boolean hasFaultResponse(MessageContext mc)

getSeiClazz

public java.lang.Class getSeiClazz()

setSeiClazz

public void setSeiClazz(java.lang.Class seiClazz)


Copyright © 2007 Apache Web Services Project. All Rights Reserved.