Package com.caucho.burlap.client
Class BurlapProxyFactory
- java.lang.Object
-
- com.caucho.burlap.client.BurlapProxyFactory
-
- All Implemented Interfaces:
ServiceProxyFactory
,javax.naming.spi.ObjectFactory
public class BurlapProxyFactory extends java.lang.Object implements ServiceProxyFactory, javax.naming.spi.ObjectFactory
Factory for creating Burlap 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 tocreate
In Resin 3.0, the above example would be configured as:<reference> <name>hessian/hello</name> <factory>com.caucho.hessian.client.HessianProxyFactory</factory> <init url="http://localhost:8080/ejb/hello"/> 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/burlap/hello"); System.out.println("Hello: " + hello.helloWorld());
Authentication
The proxy can use HTTP basic authentication if the user and the password are set.
-
-
Constructor Summary
Constructors Constructor Description BurlapProxyFactory()
Creates the new proxy factory.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
create(java.lang.Class api, java.lang.String urlName)
Creates a new proxy with the specified URL.java.lang.Object
create(java.lang.String url)
Creates a new proxy with the specified URL.static char
encode(long d)
AbstractBurlapInput
getBurlapInput(java.io.InputStream is)
BurlapOutput
getBurlapOutput(java.io.OutputStream os)
java.lang.Object
getObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable<?,?> environment)
JNDI object factory so the proxy can be used as a resource.BurlapRemoteResolver
getRemoteResolver()
Returns the remote resolver.boolean
isOverloadEnabled()
Returns true if overloaded methods are allowed (using mangling)protected java.net.URLConnection
openConnection(java.net.URL url)
Creates the URL connection.void
setOverloadEnabled(boolean isOverloadEnabled)
set true if overloaded methods are allowed (using mangling)void
setPassword(java.lang.String password)
Sets the password.void
setUser(java.lang.String user)
Sets the user.
-
-
-
Method Detail
-
setUser
public void setUser(java.lang.String user)
Sets the user.
-
setPassword
public void setPassword(java.lang.String password)
Sets the password.
-
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)
-
getRemoteResolver
public BurlapRemoteResolver getRemoteResolver()
Returns the remote resolver.
-
openConnection
protected java.net.URLConnection openConnection(java.net.URL url) throws java.io.IOException
Creates the URL connection.- Throws:
java.io.IOException
-
create
public java.lang.Object create(java.lang.String url) throws java.net.MalformedURLException, java.lang.ClassNotFoundException
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:
java.net.MalformedURLException
java.lang.ClassNotFoundException
-
create
public java.lang.Object create(java.lang.Class api, java.lang.String urlName) throws java.net.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);
- 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:
java.net.MalformedURLException
-
getBurlapInput
public AbstractBurlapInput getBurlapInput(java.io.InputStream is)
-
getBurlapOutput
public BurlapOutput getBurlapOutput(java.io.OutputStream os)
-
getObjectInstance
public java.lang.Object getObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable<?,?> environment) throws java.lang.Exception
JNDI object factory so the proxy can be used as a resource.- Specified by:
getObjectInstance
in interfacejavax.naming.spi.ObjectFactory
- Throws:
java.lang.Exception
-
encode
public static char encode(long d)
-
-