Hi,

The subject of your message states, that you want to use RMI over HTTP(S). Let me 
assume you want to use it to communicate with your EJBs.

This is similar to the post in the forum: 
http://www.jboss.org/thread.jsp?forum=61&thread=42853

You can use the http-invoker of JBoss. Some steps are neccessary to do so:

1. Configure the http-invoker.sar:
   /jboss/<server>/deploy/http-invoker.sar/META-INF/jboss-service.xml:
   There you configure the invoker where to reach the server (InvokerURL or 
InvokerURLPrefix and Suffix).
   Use the InvokerURL if the URL of the server can not be guessed by 
Prefix+Hostname+Suffix 
   (e.g. DNS is other than hostname).

   /jboss/<server>/deploy/http-invoker.sar/invoker.war/WEB-INF/web.xml:
   There you can change the mapping of the servlets (must match to the settings in 
jboss-service.xml)

2. The properties of your InitialContext on the client have to be changed to connect 
to the servlet:
   InitialContextFactory has to be changed to 
org.jboss.naming.HttpNamingContextFactory,
   ProviderUrl has changed to jnp://<yourserver>:<yourport>/invoker/JNDIFactory 
   (for HTTPS use jnps:// instead of jnp://).

3. Your EJB needs to know how to reach it (jboss.xml in your ejb.jar/META-INF). 
   You have to configure an invoker-proxy-binding. That binding has to be assigned to 
your EJB.
   The interceptors can be taken from the standardjboss.xml. The important part is the 
<invoker-mbean>-Tag.

   e.g. you have a SFSB (my example in the forum):

   <jboss>
   ...
      <session>
         <ejb-name>UserSessionBean</ejb-name>
         <jndi-name>UserSessionBean</jndi-name>

         <invoker-bindings>
            <invoker>
               <invoker-proxy-binding-name>http</invoker-proxy-binding-name>
               <jndi-name>UserSessionBean</jndi-name>
            </invoker>
         </invoker-bindings>
      </session>
   ...
      <invoker-proxy-bindings>
         <invoker-proxy-binding>
            <name>http</name>
            <invoker-mbean>jboss:service=invoker,type=http</invoker-mbean>
            <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
            <proxy-factory-config>
               <client-interceptors>
                  <home>
                     <interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
                     <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
                     <interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
                     <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
                  </home>
                  <bean>
                     
<interceptor>org.jboss.proxy.ejb.StatefulSessionInterceptor</interceptor>
                     <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
                     <interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
                     <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
                  </bean>
               </client-interceptors>
            </proxy-factory-config>
         </invoker-proxy-binding>
      </invoker-proxy-bindings>
      ...
    </jboss>


That's it.

Now your Client communicates with the server over HTTP(s) ...

Hope that helps.
Dietmar   

-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Guy Rouillier
Gesendet: Mittwoch, 10. Dezember 2003 07:03
An: [EMAIL PROTECTED]
Betreff: Re: [JBoss-user] RMI OVER HTTPS


Jeremy Rempel wrote:
> Hi,
> 
> I've asked this before a few months ago but no one knew. I'm gonna ask 
> again because possibly someone will know. I cannot find it in the 
> pay-for-docs.
> 
> Which ports does jboss RMI use? Can I force it to use certain ports?
> 
> I've tried using netstat to monitor ports but JBOSS keeps using random 
> ports. Even when I open all the random ports I still cannot get it to 
> work through the firewall.
> 
> I've opened 1099, 8083, 8443, 8080, 4444.
> 
> I'm using JBOSS 3.2.1. I cannot upgrade to anything else at the 
> moment.
> 
> Thanks!

RMI negotiates ports as necessary, which is why it appears as if it is 
using random ports.  This is an RMI thing, not an EJB or JBoss thing. 
There have been several discussions over the past year on using JBoss in 
a firewalled environment.  Basically, you need to switch to the http 
invoker.  Search the archives for "firewall".  If you want to stick with 
RMI, then you'll need to write your own socket factory.  I did that 
years ago in a pure RMI environment, not an EJB environment, but I would 
think the process would be similar.  I know the various config files 
have entries identifying socket factories, but I haven't pursued it. 
Good luck.


-- 
Guy Rouillier



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's Free Linux 
Tutorials.  Learn everything from the bash shell to sys admin. Click now! 
http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user


-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to