Wildfly上的远程EJB

时间:2014-07-01 17:39:43

标签: ejb wildfly

我有独立的应用程序,它连接到Wildfly服务器以获取EJB代理。这是maven项目,作为我的依赖:

<dependency>
    <groupId>org.wildfly</groupId>
    <artifactId>wildfly-ejb-client-bom</artifactId>
    <version>8.0.0.Final</version>
    <type>pom</type>
</dependency>

获取我正在使用的EJB:

final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
env.put("jboss.naming.client.ejb.context", true);
InitialContext remoteContext = new InitialContext(env);

String jndi = "jndi";
RemoteInterface lookup = (RemoteInterface) remoteContext.lookup(jndi);

一切正常,但服务器不要求用户名和密码。如何添加身份验证?

1 个答案:

答案 0 :(得分:0)

这对您有用,因为您可能正在测试localhost。如果您尝试命中任何远程服务器,那么它将失败。 WildFLy远程EJB调用默认情况下需要进行身份验证,AFAIK。

您需要添加以下属性:

env.put("java.naming.security.principal", "user");      
env.put("java.naming.security.credentials", "pass");

您还需要为WildFly添加此用户。