Lucas
Lucas

Reputation: 113

EJB Lookup on EAP 6.2 not using jboss-ejb-client.properties

We're trying to let two JBoss EAP 6.2 Servers communicate via JNDI. One server is using it's own LoginModule .

The first server will recieve requests via webservices and delegate them to the second server. For that reason, the first server needs to log in to look for the beans it needs to delegate.

I've figured out, that we need the following information to connect to the main (second) server:

remote.connections=default

endpoint.name=client-endpoint

remote.connection.default.port=4447
remote.connection.default.host=localhost

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false

remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT=false
remote.connection.default.connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS=JBOSS-LOCAL-USER
remote.connection.default.callback.handler.class=our.own.callbackhandler.class

java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming

We put this information into the 'jboss-ejb-client.properties' file, but our server didn't react on that.

The tutorial (https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+server+instance) says that we need to use the jboss-ejb-client.xml. Because of our LoginModule (and Callbackhandler) we don't need an user and/or password to connect to the server!

My first solution for that problem is putting all information into the InitialContext using the Properties-Class.

 final Properties props = new Properties();
         props.put("remote.connections", "default");
         props.put("remote.connection.default.host", "localhost");
         props.put("remote.connection.default.port", "4447");
         props.put("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false");
         props.put("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false");
         props.put("remote.connection.default.connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS", "JBOSS-LOCAL-USER");
         props.put("remote.connection.default.callback.handler.class",
         "our.own.callbackhandler.class");
         props.put("org.jboss.ejb.client.scoped.context", "true");
         props.put("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false");
         props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
Context ic = new InitialContext(prop);

It's working that way.

My question now is: Is there any workaround to put that information in the standalone.xml or jboss-ejb-client.properties / jboss-ejb-client.xml?

I did not find any place to put the classname of our Callbackhandler.

Thank you in advance.

Upvotes: 0

Views: 1995

Answers (1)

stephan f
stephan f

Reputation: 622

Try turning up the logging for the category org.jboss.ejb.client to DEBUG or TRACE and you should see where the server is trying to read jboss-ejb-client.properties from.

Upvotes: 0

Related Questions