Have you looked at SOAP over http?

On Tue, 6 Mar 2001, David Mease wrote:

> RMI through HTTP proxyI'm desperate to get HTTP tunneling working in JBoss.
> It works very well in Weblogic and Orion but I have a client that wants to
> use JBoss with tunneling. I don't have any insight into how to get it
> working but I'm just showing support to have it added to JBoss.
> 
> FYI, in Weblogic to use HTTP tunneling you add the following properties to
> the weblogic.properties file:
> weblogic.httpd.tunnelingenabled =true
> weblogic.httpd.requireAuthentication=false
> 
> and replace the t3 protocol with http when initializing the context.
> 
> In Orion you just add http:// when initializing the context.
> 
> Thanks,
> David Mease
>   -----Original Message-----
>   From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Marko �trukelj
>   Sent: Thursday, March 01, 2001 9:18 AM
>   To: '[EMAIL PROTECTED]'
>   Subject: [jBoss-User] RMI through HTTP proxy
> 
> 
> 
> 
>   Hi,
> 
>   I've been playing with the possibility of doing rmi on beans deployed in
> jboss through HTTP proxy and there are some things that are very funny, so
> if someone can clarify things it would be great.
> 
>   Ok. When there is a code like this in the client:
> 
>     InitialContext ctx=new InitialContext();
>     BeanHome home=(BeanHome) ctx.lookup("MyBean");
>     Bean remote=(Bean) home.findByPrimaryKey("1");
>     String something=remote.getSomething();
> 
> 
> 
>   A network connection is opened when lookup is done. Connections to port
> 1099, 5555 and 4444 are opened.
> 
>   Port 1099 is used by jnp - it uses it's own protocol and doesn't allow for
> HTTP proxy tunneling.
>   Port 5555 also seems to be used by jnp, without client being allowd to
> connect out to that port, ctx.lookup can not succeed.
> 
> 
> 
>   I suspect it doesn't allow for HTTP Proxy tunneling.
> 
> 
> 
>   4444 is a standard rmi port - I guess it uses jrmp and should work like
> the rmi specification claims and in case we disable port 4444 attempt a
> proxy. How does java know on which host:port to look for proxy? Seems it
> doesn't. You can find on varous chat forums how you could tell that to jdk
> 1.1.x :
> 
>     You could supposedly put these on your command line:
> 
>   -DproxySet=true -DproxyHost=myproxyhost -DproxyPort=8080
> 
>   But the truth is, this doesn't work with jdk1.3
>   rmi doesn't make any attempt to any port other that 4444. It doesn't try
> direct connection to port 80, it doesn't try a proxy server, it just
> doesn't. This is what I find very funny, since there is whole chapters in
> rmi specification dedicated to proxy tunnelling and there is even a servlet
> as a replacement for .cgi to be used for proxy-ing RMI via HTTP.
> 
>   It seems to me that if I wanted a client to talk to an EJB server (either
> jboss or some other), without making any change in the existing code, then
> what I would have to do would be:
> 
>   Write my own jndi implementation, replace
> 
>           -Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFact
> ory
> 
>   with something like
> 
>           -Djava.naming.factory.initial=com.mine.NamingContextFactory.
> 
>   This implementation would allow for configuring the proxy host and proxy
> port and would wrap all lookup requests in HTTP POST messages, send them to
> machine B where HTTP proxy is located and that would forward it to machine C
> where jboss and my naming service implementation is located. My naming
> service would act as a proxy to jnp. It could be written so that there would
> be no need to explicitly bind names to it, whatever requests it got it would
> just attempt them on jboss. It would wrap the results and send them back.
> 
>   But! If we just wrapped the results we would still have proxies on the
> client that would attempt to communicate through jrmp - which won't work. So
> what we need to, we need to manage what jboss returns on the server side and
> send our implementation of proxy objects and stubs to the client side, so
> all rmi calls will be marhalled into HTTP POST request, unmarshalled and
> forwarded thoru remote calls on objects that jboss returned, then the
> results marhalled into HTTP responses and sent back.
> 
>   Thus far it looks like a real mess.
> 
>   Is there any other way that would be EJB server independent?
> 
>   I know there is zoap, but you have to make remote calls in completely
> different way, also you have bunch of complications deploying your beans.
> Because you had to code your client differently you can not go back to
> direct rmi in environments that allow that.
> 
> 
> 
>   Thanks for any comments,
> 
> 
> 
>           Marko.
> 
> 

-- 
Dan Christopherson (danch) 
nVisia Technical Architect (www.nvisia.com)

Opinions expressed are mine and do not neccessarily reflect any 
position or opinion of nVISIA.

---------------------------------------------------------------------------
If you're a capitalist and you have the best goods and they're 
free, you don't have to proselytize, you just have to wait.
-Eben Moglen



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]

Reply via email to