com.caucho.hessian.client
Class HessianProxyFactory
java.lang.Object
com.caucho.hessian.client.HessianProxyFactory
- ObjectFactory, com.caucho.services.client.ServiceProxyFactory
public class HessianProxyFactory
extends java.lang.Object
implements com.caucho.services.client.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.
_basicAuth
private String _basicAuth
_isOverloadEnabled
private boolean _isOverloadEnabled
_password
private String _password
_user
private String _user
HessianProxyFactory
public HessianProxyFactory()
Creates the new proxy factory.
base64
private String base64(String value)
Creates the Base64 value.
create
public Object create(Class api,
String url)
throws MalformedURLException
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);
- create in interface com.caucho.services.client.ServiceProxyFactory
api
- the interface the proxy class needs to implementurl
- the URL where the client object is located.
- a proxy to the object with the specified interface.
create
public Object create(String url)
throws MalformedURLException,
ClassNotFoundException
Creates a new proxy with the specified URL. The API class uses
the java.api.class value from _hessian_
url
- the URL where the client object is located.
- a proxy to the object with the specified interface.
encode
public static char encode(long d)
getHessianOutput
public HessianOutput getHessianOutput(OutputStream os)
getObjectInstance
public Object getObjectInstance(Object obj,
Name name,
Context nameCtx,
Hashtable environment)
throws Exception
JNDI object factory so the proxy can be used as a resource.
isOverloadEnabled
public boolean isOverloadEnabled()
Returns true if overloaded methods are allowed (using mangling)
openConnection
protected URLConnection openConnection(URL url)
throws IOException
Creates the URL connection.
setOverloadEnabled
public void setOverloadEnabled(boolean isOverloadEnabled)
set true if overloaded methods are allowed (using mangling)
setPassword
public void setPassword(String password)
Sets the password.
setUser
public void setUser(String user)
Sets the user.