0

我在同一台机器上使用 wso2 bam 2.4.0 与独立的 cassandra 1.2.13 连接进行测试。
起初我毫无问题地启动了 cassandra 实例,然后将 bam 配置为连接到这个外部 cassandra。
Cassandra 使用默认设置,我像这样更改 cassandra-component.xml:

<Cassandra>
<Cluster>
    <Name>Test Cluster</Name>
    <DefaultPort>9160</DefaultPort>
    <Nodes>localhost:9160</Nodes>
    <AutoDiscovery disable="false" delay="1000"/>
</Cluster>

然后使用以下命令启动 bam:

sh wso2server.sh -Ddisable.cassandra.server.startup=true

然后我看到了这个异常:

[2014-01-01 11:28:44,201] 错误 {org.wso2.carbon.core.init.JMXServerManager} - 无法创建 RMI 本地注册表 java.rmi.server.ExportException:端口已在使用:9999;嵌套异常是:java.net.BindException:地址已在 sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:310) 处使用,位于 sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java: 218) 在 sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:393) 在 sun.rmi.transport.LiveRef.exportObject(LiveRef.java:129)

我不知道我错过了什么,但确定端口是冲突的。有人可以指出吗?

4

1 回答 1

0

RMI 注册表端口 9999 已被另一个进程使用。这就是你得到这个例外的原因。首先使用'netstat -antp | 确认哪个进程正在使用它。grep 9999' 命令。您可以执行以下操作之一来避免出现此错误。

  • 在 BAM_HOME/repository/conf/carbon.xml 中将端口“偏移”设置为不同的值
  • 在 BAM_HOME/repository/conf/carbon.xml 中将“RMIRegistryPort”设置为不同的值
  • 通过在 BAM_HOME/repository/conf/etc/jmx.xml 中将 'StartRMIServer' 设置为 false 来阻止 RMI 服务器启动
于 2014-01-01T11:25:39.553 回答