8 Replies Latest reply on Oct 22, 2004 4:45 PM by fe2o3

    Configure JBOSS Using HTTP Port for RMI and JNDI

    roli8200

      Hallo

      I've got the job to configure our JBOSS Server to use only the http port 8080 or 80 for transportation of JNDI and RMI communication. We want to set a http reverse proxy in front of the JBOSS Server. How can I configure jboss opening only this 8080 port for all communication also including the jms part.

      Kind regards

      Roland Käser
      Systems Administrator

        • 1. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
          jburugupalli

          HI,

          The relevant topic is "HTTPInvokers". So serach for this in the documentation and also in the forums and you will get all the informaiton needed. We are successfully using it in the reverse proxy case also.

          Have fun,

          regards
          Jani.

          • 2. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
            roli8200

            Many thanks

            But i've read all the tutorials and tried all the samples but it doesn't work.

            We have a big j2ee application but i cannot use this for testing. I wrote a small hello world bean for the test case which is acessed from a command line client on a other machine which gets the home-interface through jndi and creates a bean which answers with the small hello world method. I can acess JNDI through the http invoker and get successfully the home interface but as soon as i try to create the bean, the stub tries to connect the server via the port 4444 and not via the 8080 http invoker port.

            Whats wrong?

            Roland Kaeser

            • 3. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
              frito

              Sounds like you configured the JNDI to use HttpNamingContextFactory for looking up with HTTP and forgot to configure the proxy binding for your bean in your beans jboss.xml file.

              • 4. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
                roli8200

                This sounds very interesting. Please excuse my dumb question: Which proxy bindings. How to configure it?

                Many thanks

                Roland Kaeser

                • 5. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
                  frito

                  Proxy bindings are configured in conf/standardjboss.xml or the configuration is deployed with your bean using the jboss.xml .

                  The second way looks like something like that (in jboss.xml):

                  
                   <enterprise-beans>
                   <session>
                   ...
                   <invoker-bindings>
                   <invoker>
                   <invoker-proxy-binding-name>theBinding</invoker-proxy-binding-name>
                   </invoker>
                   </invoker-bindings>
                   </session>
                   ...
                   </enterprise-beans>
                  
                   <invoker-proxy-bindings>
                   <invoker-proxy-binding>
                   <name>theBinding</name>
                   ...
                   </invoker-proxy-binding>
                   </invoker-proxy-bindings>
                  
                  


                  Since I didn't use HTTP for EJB invocation for now, you should even take jburugupalli's advice to heart and search the doko and / or search the forum for the right binding configuration.

                  • 6. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
                    roli8200

                    Hello

                    Many thanks for Your advice. But there (standardjboss.xml) are to many config options for me to learn in that short time. Can somebody give me a sample fo the configuration snippet?

                    Kind regards

                    Roland Kaeser

                    • 7. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
                      roli8200

                      Hello

                      Eventually my question was not really clear. Can somebody send me a snippet from the standardjboss.xml file which configures this proxy bindings for stateless stateless-rmi-invoker, stateful-rmi-invoker and also the entity-rmi-invoker for the http transport.

                      Many thanks

                      Roland Kaeser

                      • 8. Re: Configure JBOSS Using HTTP Port for RMI and JNDI
                        fe2o3

                        In your jboss.xml for each bean you want to be exposed via http, add the following. (I do this post compilation during (pre)deployment with some xml-task tasks via ant).

                        <invoker-bindings> <invoker>
                        <invoker-proxy-binding-name>stateless-http-invoker</invoker-proxy-binding-name>
                        </invoker>
                        </invoker-bindings>
                        


                        In your jboss.xml of each jboss.xml (or in standardjboss.xml), you have to create the invoker bindings you are now referencing.

                        <invoker-proxy-binding>
                         <name>stateful-http-invoker</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-binding>
                         <name>stateless-httpHA-invoker</name>
                         <invoker-mbean>jboss:service=invoker,type=httpHA</invoker-mbean>
                         <proxy-factory>org.jboss.proxy.ejb.ProxyFactoryHA</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.StatelessSessionInterceptor</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>