Package com.caucho.hessian.client
Class HessianProxyFactory
java.lang.Object
com.caucho.hessian.client.HessianProxyFactory
- All Implemented Interfaces:
ServiceProxyFactory
,ObjectFactory
Factory for creating Hessian client stubs. The returned stub will
call the remote object for all methods.
String url = "http://localhost:8080/ejb/hello"; HelloHome hello = (HelloHome) factory.create(HelloHome.class, url);After creation, the stub can be like a regular Java class. Because it makes remote calls, it can throw more exceptions than a Java class. In particular, it may throw protocol exceptions. The factory can also be configured as a JNDI resource. The factory expects to parameters: "type" and "url", corresponding to the two arguments to
create
In Resin 3.0, the above example would be configured as:
<reference> <jndi-name>hessian/hello</jndi-name> <factory>com.caucho.hessian.client.HessianProxyFactory</factory> <init-param url="http://localhost:8080/ejb/hello"/> <init-param type="test.HelloHome"/> </reference>To get the above resource, use JNDI as follows:
Context ic = new InitialContext(); HelloHome hello = (HelloHome) ic.lookup("java:comp/env/hessian/hello"); System.out.println("Hello: " + hello.helloWorld());
Authentication
The proxy can use HTTP basic authentication if the user and the password are set.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates the new proxy factory.HessianProxyFactory
(ClassLoader loader) Creates the new proxy factory. -
Method Summary
Modifier and TypeMethodDescriptioncreate
(Class<?> api, String urlName, ClassLoader loader) Creates a new proxy with the specified URL.create
(Class<?> api, URL url, ClassLoader loader) Creates a new proxy with the specified URL.Creates a new proxy with the specified URL.Creates a new proxy with the specified URL.protected HessianConnectionFactory
static char
encode
(long d) Returns the connection factory to be used for the HTTP request.long
The socket connection timeout in milliseconds.getObjectInstance
(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) JNDI object factory so the proxy can be used as a resource.long
The socket timeout on requests in milliseconds.Returns the remote resolver.Gets the serializer factory.boolean
Set true if should use chunked encoding on the request.boolean
isDebug()
Gets the debugboolean
Returns true if overloaded methods are allowed (using mangling)void
setChunkedPost
(boolean isChunked) Set true if should use chunked encoding on the request.void
Sets the connection factory to use when connecting to the Hessian service.void
setConnectTimeout
(long timeout) The socket connect timeout in milliseconds.void
setDebug
(boolean isDebug) Sets the debugvoid
setHessian2Reply
(boolean isHessian2) True if the proxy can read Hessian 2 responses.void
setHessian2Request
(boolean isHessian2) True if the proxy should send Hessian 2 requests.void
setOverloadEnabled
(boolean isOverloadEnabled) set true if overloaded methods are allowed (using mangling)void
setPassword
(String password) Sets the password.void
setReadTimeout
(long timeout) The socket timeout on requests in milliseconds.void
setSerializerFactory
(SerializerFactory factory) Sets the serializer factory.void
Sets the user.
-
Field Details
-
log
-
-
Constructor Details
-
HessianProxyFactory
public HessianProxyFactory()Creates the new proxy factory. -
HessianProxyFactory
Creates the new proxy factory.
-
-
Method Details
-
setUser
Sets the user. -
setPassword
Sets the password. -
getBasicAuth
-
setConnectionFactory
Sets the connection factory to use when connecting to the Hessian service. -
getConnectionFactory
Returns the connection factory to be used for the HTTP request. -
setDebug
public void setDebug(boolean isDebug) Sets the debug -
isDebug
public boolean isDebug()Gets the debug -
isOverloadEnabled
public boolean isOverloadEnabled()Returns true if overloaded methods are allowed (using mangling) -
setOverloadEnabled
public void setOverloadEnabled(boolean isOverloadEnabled) set true if overloaded methods are allowed (using mangling) -
setChunkedPost
public void setChunkedPost(boolean isChunked) Set true if should use chunked encoding on the request. -
isChunkedPost
public boolean isChunkedPost()Set true if should use chunked encoding on the request. -
getReadTimeout
public long getReadTimeout()The socket timeout on requests in milliseconds. -
setReadTimeout
public void setReadTimeout(long timeout) The socket timeout on requests in milliseconds. -
getConnectTimeout
public long getConnectTimeout()The socket connection timeout in milliseconds. -
setConnectTimeout
public void setConnectTimeout(long timeout) The socket connect timeout in milliseconds. -
setHessian2Reply
public void setHessian2Reply(boolean isHessian2) True if the proxy can read Hessian 2 responses. -
setHessian2Request
public void setHessian2Request(boolean isHessian2) True if the proxy should send Hessian 2 requests. -
getRemoteResolver
Returns the remote resolver. -
setSerializerFactory
Sets the serializer factory. -
getSerializerFactory
Gets the serializer factory. -
createHessianConnectionFactory
-
create
Creates a new proxy with the specified URL. The API class uses the java.api.class value from _hessian_- Parameters:
url
- the URL where the client object is located.- Returns:
- a proxy to the object with the specified interface.
- Throws:
MalformedURLException
ClassNotFoundException
-
create
Creates a new proxy with the specified URL. The returned object is a proxy with the interface specified by api.String url = "http://localhost:8080/ejb/hello"); HelloHome hello = (HelloHome) factory.create(HelloHome.class, url);
- Specified by:
create
in interfaceServiceProxyFactory
- Parameters:
api
- the interface the proxy class needs to implementurl
- the URL where the client object is located.- Returns:
- a proxy to the object with the specified interface.
- Throws:
MalformedURLException
-
create
Creates a new proxy with the specified URL. The returned object is a proxy with the interface specified by api.String url = "http://localhost:8080/ejb/hello"); HelloHome hello = (HelloHome) factory.create(HelloHome.class, url);
- Parameters:
api
- the interface the proxy class needs to implementurl
- the URL where the client object is located.- Returns:
- a proxy to the object with the specified interface.
- Throws:
MalformedURLException
-
create
Creates a new proxy with the specified URL. The returned object is a proxy with the interface specified by api.String url = "http://localhost:8080/ejb/hello"); HelloHome hello = (HelloHome) factory.create(HelloHome.class, url);
- Parameters:
api
- the interface the proxy class needs to implementurl
- the URL where the client object is located.- Returns:
- a proxy to the object with the specified interface.
-
getHessianInput
-
getHessian1Input
-
getHessian2Input
-
getHessianOutput
-
getObjectInstance
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws ExceptionJNDI object factory so the proxy can be used as a resource.- Specified by:
getObjectInstance
in interfaceObjectFactory
- Throws:
Exception
-
encode
public static char encode(long d)
-