Network error: com.jme3.network.kernel.ConnectorException: Connector closed.

Which is caused by:
“Class has not been registered:class groteserver.Item”

@aegroto said: I tried without being making them classes on their own too,and the connection drops when the server tries to serialize the array:

[java]Grave: Unhandled error, endpoint:NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:1337 remote=/127.0.0.1:61746]], context:groteserver.TextMessage@291a59e3
java.lang.RuntimeException: Error serializing message
at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:81)
at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:487)
at groteserver.ServerListener.messageReceived(ServerListener.java:23)
at groteserver.ServerListener.messageReceived(ServerListener.java:16)
at com.jme3.network.base.MessageListenerRegistry.messageReceived(MessageListenerRegistry.java:73)
at com.jme3.network.base.DefaultServer.dispatch(DefaultServer.java:282)
at com.jme3.network.base.DefaultServer$Redispatch.messageReceived(DefaultServer.java:569)
at com.jme3.network.base.DefaultServer$Redispatch.messageReceived(DefaultServer.java:565)
at com.jme3.network.base.KernelAdapter.dispatch(KernelAdapter.java:183)
at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:237)
at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:280)
Caused by: com.jme3.network.serializing.SerializerException: Error writing object for field:private java.util.ArrayList groteserver.ArrayMessage.array
at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:180)
at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:389)
at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73)
… 10 more
Caused by: java.lang.IllegalArgumentException: Class has not been registered:class groteserver.Item
at com.jme3.network.serializing.Serializer.getSerializerRegistration(Serializer.java:324)
at com.jme3.network.serializing.Serializer.getSerializerRegistration(Serializer.java:293)
at com.jme3.network.serializing.Serializer.writeClass(Serializer.java:368)
at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:388)
at com.jme3.network.serializing.serializers.CollectionSerializer.writeObject(CollectionSerializer.java:109)
at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:389)
at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:175)
… 12 more
[/java]

See… that’s a completely different exception than the one you originally posted, sending us on a wild goose chase. So now we are at least getting good data and the error tells you exactly what’s wrong.

Class has not been registered:class groteserver.Item

@loopies said: "SerializerException: Error writing object for field:private java.util.ArrayList"

Try making your ArrayList field public in the array message class.

Fields do not have to be public. Have you used Spider Monkey before? Some of this advice is not exactly helpful… though I suppose it is good learning for anyone following along.

I have. I just messed out on my last post.

So i should register groteserver.Item on the serializer or where?

@aegroto said: So i should register groteserver.Item on the serializer or where?

Yes. Though it occurs to me that it would have taken you less time to try it than to post here. :confused:

1 Like

I had no access to the project,that’s why i asked :slight_smile:

It works,thanks!