org.apache.axis2.jaxws.client.proxy
Class JAXWSProxyHandler
java.lang.Object
org.apache.axis2.jaxws.BindingProvider
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.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
serviceDesc
protected ServiceDescription serviceDesc
controller
protected InvocationController controller
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)
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.