I am having trouble running the RMI example. I run the Server first, and then the Client on the same machine. I enter "localhost" for the client and send a message.When I run the ChatServer/ChatClient example it works fine (non-RMI).Eclipse Indigo (running from within)Java 1.6.0_37 on OS X on 10.6.8Kryonet 2.20Kryo 2.20Client log:
00:03 INFO: Connecting: localhost/127.0.0.1:54777
00:03 DEBUG: [kryonet] Port 50024/TCP connected to: localhost/127.0.0.1:54777
00:03 DEBUG: [kryo] Read: RegisterTCP
00:03 INFO: [kryonet] Connection 1 connected: localhost/127.0.0.1
00:03 DEBUG: [kryo] Write: InvokeMethod
00:03 DEBUG: [kryonet] Connection 1 sent: IPlayer#registerName(Test) (13)
00:03 DEBUG: [kryo] Read: InvokeMethod
00:03 DEBUG: [kryonet] Connection 1 received: ChatFrame#setNames([Test])
00:03 DEBUG: [kryo] Write: InvokeMethodResult
00:03 DEBUG: [kryonet] Connection 1 sent: null (8)
Exception in thread "Connect" com.esotericsoftware.kryonet.rmi.TimeoutException: Response timed out: com.esotericsoftware.kryonet.examples.chatrmi.IPlayer.registerName
at com.esotericsoftware.kryonet.rmi.ObjectSpace$RemoteInvocationHandler.invoke(ObjectSpace.java:394)
at $Proxy0.registerName(Unknown Source)
at com.esotericsoftware.kryonet.examples.chatrmi.ChatRmiClient$4.run(ChatRmiClient.java:104)
00:12 DEBUG: [kryo] Write: KeepAlive
00:12 DEBUG: [kryo] Write: InvokeMethod
00:12 DEBUG: [kryonet] Connection 1 sent: IPlayer#sendMessage(asdf) (13)
Exception in thread "AWT-EventQueue-0" com.esotericsoftware.kryonet.rmi.TimeoutException: Response timed out: com.esotericsoftware.kryonet.examples.chatrmi.IPlayer.sendMessage
at com.esotericsoftware.kryonet.rmi.ObjectSpace$RemoteInvocationHandler.invoke(ObjectSpace.java:394)
at $Proxy0.sendMessage(Unknown Source)
at com.esotericsoftware.kryonet.examples.chatrmi.ChatRmiClient$2.run(ChatRmiClient.java:86)
at com.esotericsoftware.kryonet.examples.chatrmi.ChatRmiClient$ChatFrame$3.actionPerformed(ChatRmiClient.java:182)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6382)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
at java.awt.Component.processEvent(Component.java:6147)
at java.awt.Container.processEvent(Container.java:2083)
at java.awt.Component.dispatchEventImpl(Component.java:4744)
at java.awt.Container.dispatchEventImpl(Container.java:2141)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4619)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4280)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4210)
at java.awt.Container.dispatchEventImpl(Container.java:2127)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:704)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:677)
at java.awt.EventQueue$3.run(EventQueue.java:675)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:674)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
00:16 DEBUG: [kryonet] Connection 1 timed out.
00:16 INFO: [kryonet] Connection 1 disconnected.Server Log:00:00 DEBUG: [kryonet] Accepting connections on port: 0.0.0.0/0.0.0.0:54777/TCP
00:00 INFO: [kryonet] Server opened.
00:10 DEBUG: [kryonet] Port 54777/TCP connected to: /127.0.0.1:50024
00:10 DEBUG: [kryo] Write: RegisterTCP
00:10 INFO: [kryonet] Connection 1 connected: /127.0.0.1
00:10 DEBUG: [kryo] Read: InvokeMethod
00:10 DEBUG: [kryonet] Connection 1 received: Player#registerName(Test)
00:10 DEBUG: [kryo] Write: InvokeMethod
00:10 DEBUG: [kryonet] Connection 1 sent: IChatFrame#setNames([Test]) (14)
00:10 DEBUG: [kryo] Write: InvokeMethodResult
Exception in thread "Server" com.esotericsoftware.kryo.KryoException: java.lang.llegalArgumentException: Class is not registered: java.lang.IllegalStateException
Note: To register this class use: kryo.register(java.lang.IllegalStateException.lass);
Serialization trace:
result (com.esotericsoftware.kryonet.rmi.ObjectSpace$InvokeMethodResult)
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:585)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:571)
at com.esotericsoftware.kryonet.KryoSerialization.write(KryoSerialization.java:50)
at com.esotericsoftware.kryonet.TcpConnection.send(TcpConnection.java:192)
at com.esotericsoftware.kryonet.Connection.sendTCP(Connection.java:59)
at com.esotericsoftware.kryonet.rmi.ObjectSpace.invoke(ObjectSpace.java:227)
at com.esotericsoftware.kryonet.rmi.ObjectSpace$1.received(ObjectSpace.java:69)
at com.esotericsoftware.kryonet.Connection.notifyReceived(Connection.java:246)
at com.esotericsoftware.kryonet.Server.update(Server.java:202)
at com.esotericsoftware.kryonet.Server.run(Server.java:350)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.IllegalArgumentException: Class is not registered: java.lag.IllegalStateException
Note: To register this class use: kryo.register(java.lang.IllegalStateException.class);
at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:443)
at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:73)
at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:475)
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:561)
... 11 more
--
You received this message because you are subscribed to the "kryonet-users" group.
http://groups.google.com/group/kryonet-users
Exception in thread "Server" java.lang.RuntimeException: Error invoking method: com.esotericsoftware.kryonet.examples.chatrmi.IPlayer.registerName
at com.esotericsoftware.kryonet.rmi.ObjectSpace.invoke(ObjectSpace.java:208)
at com.esotericsoftware.kryonet.rmi.ObjectSpace$1.received(ObjectSpace.java:69)
at com.esotericsoftware.kryonet.Connection.notifyReceived(Connection.java:246)
at com.esotericsoftware.kryonet.Server.update(Server.java:202)
at com.esotericsoftware.kryonet.Server.run(Server.java:350)
Caused by: java.lang.IllegalStateException: Cannot wait for an RMI response on the connection's update thread.