当前位置: 首页 > 知识库问答 >
问题:

WebSphere AdminClient连接到本地托管进程,而不是主机:在属性中指定的端口

薛烨
2023-03-14

我经历了WebSphere AdminClient使用RMI连接器的奇怪行为。

在7台独立服务器(服务器名:server1),端口范围20000-20050上部署了一个测试web应用程序(一个servlet)。servlet应该使用RMI连接器为WAS 6.1独立服务器(服务器名:server1),端口范围为20200-20250打开一个AdminClient:

Properties props = new Properties();
props.setProperty(AdminClient.CONNECTOR_HOST, "localhost");
props.setProperty(AdminClient.CONNECTOR_PORT, "20209"); // ORB, BOOTSTRAP is 20204, both behave the same
props.setProperty(AdminClient.CONNECTOR_TYPE,     AdminClient.CONNECTOR_TYPE_RMI);
props.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
props.setProperty(AdminClient.CONNECTOR_AUTO_ACCEPT_SIGNER, "true");
props.setProperty(AdminClient.USERNAME, "someuser");
props.setProperty(AdminClient.PASSWORD, "somepassword");

AdminClient ac = AdminClientFactory.createAdminClient(props);

// locate and stop server1 
Set servers = ac.queryNames(new ObjectName("WebSphere:type=Server,name=server1,*"), null);
if(!servers.isEmpty()) {
    ObjectName server = (ObjectName) servers.iterator().next();
    if(server != null) {
        ac.invoke( server, "stop", null, null );
    }
} 

现在的问题是,这样的AdminClient连接到本地(WAS 7,端口范围20000-20050)进程并停止它(因为它具有相同的服务器名:server1)。

尽管使用了SECURITY_ENABLED、USERNAME和PASSWORD(使用错误的USERNAME/PASSWORD进行测试),但似乎忽略了主机和端口属性。知道为什么它不连接到其他服务器吗?我责怪某些本地属性文件优先于指定的属性,但没有找到任何yey(sas.client.props不包含任何主机/端口信息)。使用SOAP connector时,它工作得非常好。

Update当两台服务器位于不同的计算机上,因此主机属性不同时,它实际上是连接在那里的。用户仍然必须存在于同一领域内的两台计算机上。所以问题是,当两个完全独立的进程(一个托管客户端应用程序,一个要连接到的进程)驻留在同一台主机上时,它就会连接到本地进程--指向另一个进程的端口属性被忽略。

共有1个答案

姚才捷
2023-03-14

我怀疑您需要在知识中心的应用程序访问问题主题的“运行在同一主机上具有相同名称的两个服务器正在被用于互操作”部分中描述的com.ibm.websphere.orb.uniqueservername属性。

 类似资料:
  • 问题内容: 由于wamp服务器,我试图将我的android应用程序连接到本地主机url,但它不起作用。我的目标是获取json数据并解析这些数据。对于我的测试,我使用的是设备而不是模拟器,并且使用AndroidManifest.xml中的权限: 我的网址看起来像这样: 我试过了 : 但是到目前为止,它从未起作用: 然后我尝试了在互联网上找到的json url测试:http : //headers.j

  • 问题内容: 我使用MySql.Data 8.08和.NET Core连接到MySql 5.7.18,但引发了以下异常: 怎么处理呢? 问题答案: 从MySql.Data 7.0.7迁移到8.0.8时,我今天遇到了同样的问题。我能够继续在连接字符串中添加“ SslMode = none”。 您将得到类似以下内容的结果: (用数据库详细信息替换值)

  • 试图连接一个简单的JMX监控。托管应用程序和监控工具位于同一台服务器上。当试图连接一个错误 00:30:55610致命http-8080-6 SiteListener:makeJmxConnection:99-java.io。IOException:检索RMIServer存根失败:javax.naming。ServiceUnavailableException[根异常为java.rmi.Conne

  • 问题内容: 当我尝试使用连接到Elasticsearch时, 它工作正常。 但是当我运行它时抛出一个错误说 无法连接到本地主机端口9200:连接被拒绝 如何解决这个错误? 问题答案: 默认情况下,它应该绑定到所有本地地址。因此,假设你没有使用防火墙在网络层的问题,唯一的ES设置我能想到是检查并确保其未设置或设置为或或正确的IP地址为您的网络。 更新:根据ES 2.3中的注释,您应该进行设置。

  • 大家好,我是Docker的新手,我想通过在官方网站上学习教程来熟悉Docker。现在我被困在教程的第2部分(你可以在这里查看链接)= 我有示例应用程序代码、Dockerfile和要求。txt与官方教程完全相同 我的Dockerfile是这样的 所有3个文件的文件内容/代码也与教程完全相同。我能够用这个命令构建镜像注册表 一切看起来都很好。现在我有了样本项目图像注册表。 然后,我根据官方教程使用此命

  • 当我尝试使用它工作正常。 但是当我运行它抛出一个错误,表示 连接到localhost端口9200失败:连接拒绝 如何解决此错误?