Naming.unbind(“somename”)对wildfly 13失败

问题描述 投票:0回答:1

我正在将应用程序从jboss 4.2迁移到wildfly 13.该应用程序公开EJB,成功迁移,这些EJB被一些独立客户端(包含为使用tanuki包装器的服务包装)用于与wildfly运行在同一台机器上。使用JMX监视这些独立客户端。启动代码尝试取消绑定服务名称,以防客户端在早期运行中崩溃使用

Naming.unbind("//localhost:1099/myService");

在正常启动时(不是在崩溃后)a

java.rmi.NotBoundException

是期待。

我的问题是我得到以下stacktrace

Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)

端口1099是Naming javadoc所声明的默认“众所周知”端口:

Naming类提供了用于存储和获取对远程对象注册表中的远程对象的引用的方法。 Naming类的每个方法都将其参数作为其参数之一,其名称是URL格式的java.lang.String(没有scheme组件),格式为:// host:port / name其中host是主机(远程或本地)注册表所在的位置,port是注册表接受调用的端口号,name是注册表未解释的简单字符串。主机和端口都是可选的。如果省略host,则主机默认为本地主机。如果省略port,则端口默认为1099,即RMI注册表rmiregistry使用的“众所周知”端口。

我也尝试使用wildfly管理端口,因为它使用http端口升级,我得到了

java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: 
    java.net.SocketTimeoutException: Read timed out

具有以下根本原因

Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:171)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    at java.io.DataInputStream.readByte(DataInputStream.java:265)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:246)

我错过了什么和/或做错了什么?

java wildfly rmi jmx wildfly-13
1个回答
0
投票

我发现rmiregistry不是由wildfly启动的。我被旧的环境误导了,它在init.d上启动了操作系统启动时的rmiregistry。

所以启动rmiregistry解决了我的问题。

Rmi和wildfly http升级功能彼此无关,因为rmiregistry是一个独立的过程。

© www.soinside.com 2019 - 2024. All rights reserved.