0 Replies Latest reply on Feb 8, 2018 3:18 PM by Marco Hofstetter

    EAP7.1: EJB over "pure" HTTP for server to server communication

    Marco Hofstetter Newbie

      Hi all

       

      i'm trying to setup a pure http server-to-server ejb-remote-communication. all i found were instructions of how to setup the pure http communication from a client-application (e.g. java se)

       

      JBoss EAP 6.4

      Our current setup for server-to-server communication via ejb-remoting is the following

      • server-side
        • JBoss EAP 6.4
        • Configured HTTP remoting connector
      • client-side
        • JBoss EAP 6.4
        • Configured remote-destination-outbound-socket-binding and remote-outbound-connection
        • jboss-ejb-client.xml in application-deployment which references the remote-outbound-connection
        • setting java.naming.factory.url.pkgs=org.jboss.ejb.client.naming in the application jndi-properties when making building the InitialContext

       

      so far so good - it works.

       

      JBoss EAP 7.1

       

      is it possible/designed to use the new feature of calling a remote ejb with "pure" http (benefit of using http loadbalancers) combined with a server-to-server ejb-remote-communication?

       

      server-side

      -> configured http-invoker in undertow

       

      some configuration "attempts" i made on the 'client-side'

      1. simply change the protocol of the remote-outbound-connection to 'http'
        • -> configuration fails because the protocol isn't supported from the remoting subsystem
      2. changing the client-side configuration by setting the jndi-properties "Context.INITIAL_CONTEXT_FACTORY=org.wildfly.naming.client.WildFlyInitialContextFactory" & "Context.PROVIDER_URL=http://host:port/wildfly-services" instead of the whole rest of the client-side configuration from the eap 6.4 setup
        • -> naming lookup failed because of missing NamingProviderFactory for the providerScheme 'http' -> module 'org.wildfly.http-client.naming' and its class org.wildfly.httpclient.naming.HttpNamingProviderFactory not on classpath
      3. including the jboss modules 'org.wildfly.http-client.ejb' & 'org.wildfly.http-client.naming'
        • -> org.wildfly.httpclient.naming.HttpNamingProviderFactory is found via ServiceLoader
        • -> ejb call fails because there is no registered org.jboss.ejb.client.EJBTransportProvider for the protocol 'http'

       

      --> the two supported EJBTransportProviders (RemoteTransportProvider & LocalTransportProvider) are "hardcoded" in the setup of the ejb3 subsystem and there isn't a possibility (?) of configuring jboss to use the org.wildfly.httpclient.ejb.HttpClientProvider instead.

       

      thanks for your help or a statement if this isn't supported (yet).