我希望能够有两个Wildfly(或JBoss7)实例,其中一个服务器与另一个服务器上的EJB对话。棘手的部分是,根据文档,需要创建带有出站套接字绑定的远程出站连接。这对我们的运营团队来说是一个很大的麻烦,尤其是当我们想要扩展的时候。
Jgitter的回答让我大吃一惊。以下是我最后得到的结果:
/**
* @return a reference to the EJB
* @throws EjbLookupException
*/
@NotNull
public T lookup ()
throws EjbLookupException
{
String path = createJndiPath();
Context initialContext = null;
try
{
initialContext = createInitialContext();
//noinspection unchecked
final T ejb = (T)initialContext.lookup( path );
if( m_apiVersion != null )
{
( (RemoteAPI)ejb ).validateClientCompatibility( m_apiVersion );
}
return ejb;
}
catch( NamingException | RuntimeException e )
{
throw new EjbLookupException( "Unable to find the JBoss EJB at " + path, e );
}
finally
{
if( initialContext != null )
{
//noinspection ThrowableResultOfMethodCallIgnored
Closer.close( initialContext );
}
}
}
/**
* There are a lot of ways to do JBoss 7 / Wildfly EJB lookups. Using this method, we don't have to create
* outbound socket bindings whenever we want to use a remote EJB.
*
* @throws NamingException
*/
@NotNull
private Context createInitialContext ()
throws NamingException
{
Properties properties = new Properties();
properties.put( Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming" );
properties.put( "org.jboss.ejb.client.scoped.context", "true" );
properties.put( "remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false" );
properties.put( "remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false" );
properties.put( "remote.connections", "default" );
properties.put( "remote.connection.default.host", m_host );
properties.put( "remote.connection.default.port", String.valueOf( m_port ) );
if( m_username != null )
{
properties.put( "remote.connection.default.username", m_username );
}
if( m_password != null )
{
properties.put( "remote.connection.default.password", m_password );
}
return new InitialContext( properties );
}
public static class EjbLookupException
extends Exception
{
EjbLookupException (
@NotNull String message,
@NotNull Throwable cause )
{
super( message, cause );
}
}
我不确定是否需要限定范围的上下文,并且可能没有正确关闭连接。我会根据我发现的情况更新这个答案。
这里是HBase/Hadoop的超级新版本。我启动并运行了一个两节点HBase测试集群,现在我正尝试从一个远程Java客户端连接到该集群。这里是我陷入困境的地方:客户端成功地连接到单服务器Zookeeper仲裁(与HBase主服务器运行在同一服务器上),但是Zookeeper传递回客户端的地址是localhost,而且(很明显)客户端无法连接到任何东西,因为HBase不在本地运行。考虑到由于管理原
问题内容: 我在AWS中创建了一个3节点(1个主节点,2个工作人员)集群。我可以将作业从主服务器提交到群集,但是我无法使其在远程工作。 我可以从主人那里看到: 因此,当我从本地计算机执行时,它无法连接到: 但是,我知道如果将master设置为,它会起作用,因为那样它将在本地运行。但是,我希望客户端连接到该远程主服务器。我该怎么做?Apache配置外观文件。我什至可以远程登录到该公共DNS和端口,还
我要创建一个与spring FTPSSessionFactory的ftp连接。 在我的项目中,我将xml配置用于与TLS的ftp连接(它起作用了): 现在我的问题是: 我如何修改xml部分(我猜是用setter)使它同时适用于这两个部分?
问题内容: 我为远程服务器编写了以下hbase客户端类: 它引发了一些异常: 您能告诉我为什么会引发异常,代码有什么问题以及如何解决它。 问题答案: 由于您的HBase服务器的hosts文件,因此会发生此问题。 您只需要编辑HBase服务器的/ etc / hosts文件。 从该文件中删除localhost条目,然后将localhost条目放在HBase服务器IP的前面。 例如,您的HBase服务
我们开发了一个培训应用程序,其中包含一个与EJB通信的独立java客户端。工作设置包括Windows 7上的JBoss AS 7.1和通过/bin/add user创建的应用程序用户。球棒 客户端是这样编码的: 客户端是用jboss客户端启动的。类路径中的jar。 现在,我们尝试改用WildFly 8.1,它已成功部署,但客户端失败 将JNDI查找名称更改为在部署期间打印出来的内容(例如)导致 在
我在远程服务器上安装了一个干净的Wildfly8.1。注意,这个远程服务器是用Vagrant创建的虚拟盒子服务器。 现在我想使用远程JBoss服务器连接IntelliJ。 首先,我创建了一个虚拟用户,用户名/密码:jboss/jboss 然后我使用以下命令启动wildfly服务器: 以下是我在IntelliJ中的远程JBoss服务器设置: 但我得到以下错误: