Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
netty socketio服务器中的java.lang.NoSuchMethodError_Java_Sockets_Socket.io - Fatal编程技术网

netty socketio服务器中的java.lang.NoSuchMethodError

netty socketio服务器中的java.lang.NoSuchMethodError,java,sockets,socket.io,Java,Sockets,Socket.io,我正在尝试启动nettysocketio服务器,但无法跟踪此异常的起源。我已经在stacktrace中标记了可能导致答案的位置,因此如果有人能够对此提供解释,将不胜感激 public class SocketIoServer { private Configuration cnf = new Configuration(); private SocketIOServer server; public SocketIoServer() { Configu

我正在尝试启动
nettysocketio
服务器,但无法跟踪此异常的起源。我已经在stacktrace中标记了可能导致答案的位置,因此如果有人能够对此提供解释,将不胜感激

public class SocketIoServer {
    private Configuration cnf = new Configuration();
    private SocketIOServer server;

    public SocketIoServer() {

        Configuration config = new Configuration();
        config.setHostname("localhost");
        config.setPort(8081);

        server = new SocketIOServer(config);
        server.start();
    }
}
初始化套接字时会引发异常。以下是上下文:

Exception in thread "main" java.lang.IllegalArgumentException: 

java.lang.reflect.InvocationTargetException
    at com.corundumstudio.socketio.Configuration.<init>(Configuration.java:112)
    at com.corundumstudio.socketio.SocketIOServer.<init>(SocketIOServer.java:66)
    at SocketIoServer.<init>(SocketIoServer.java:17)
    at Server.main(Server.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.corundumstudio.socketio.Configuration.<init>(Configuration.java:109)
    ... 8 more
线程“main”java.lang.IllegalArgumentException中的异常: java.lang.reflect.InvocationTargetException 位于com.corundumstudio.socketio.Configuration.(Configuration.java:112) 位于com.corundumstudio.socketio.SocketIOServer.(SocketIOServer.java:66) 在SocketIoServer上。(SocketIoServer.java:17) 位于Server.main(Server.java:19) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) 位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 原因:java.lang.reflect.InvocationTargetException 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 位于java.lang.reflect.Constructor.newInstance(Constructor.java:526) 位于com.corundumstudio.socketio.Configuration.(Configuration.java:109) ... 8个以上 尤其是这一行

Caused by: java.lang.NoSuchMethodError: 
com.fasterxml.jackson.databind.module.SimpleModule.setSerializerModifier(Lcom/fasterxml/jackson/databind/ser/BeanSerializerModifier;)Lcom/fasterxml/jackson/databind/module/SimpleModule;
    at com.corundumstudio.socketio.protocol.JacksonJsonSupport.init(JacksonJsonSupport.java:316)
    at com.corundumstudio.socketio.protocol.JacksonJsonSupport.<init>(JacksonJsonSupport.java:311)
    at com.corundumstudio.socketio.protocol.JacksonJsonSupport.<init>(JacksonJsonSupport.java:304)
    ... 13 more
原因:java.lang.NoSuchMethodError:
com.fasterxml.jackson.databind.module.SimpleModule.setSerializerModifier(Lcom/fasterxml/jackson/databind/ser/BeanSerializerModifier;)Lcom/fasterxml/jackson/databind/module/SimpleModule;
位于com.corundumstudio.socketio.protocol.JacksonJsonSupport.init(JacksonJsonSupport.java:316)
位于com.corundumstudio.socketio.protocol.JacksonJsonSupport.(JacksonJsonSupport.java:311)
位于com.corundumstudio.socketio.protocol.JacksonJsonSupport.(JacksonJsonSupport.java:304)
... 还有13个

您的项目中的版本显然存在冲突,实际上类
com.corundumstudio.socketio.protocol.JacksonJsonSupport
依赖于自版本
2.2
以来添加的方法,因此它找不到此方法,这意味着您的类路径中有一个早于
2.2
jackson-databind
版本,因此无法找到该方法


检查类路径中的所有jar,确保只有一个版本的
jackson-databind
对应于
netty-socketio
所期望的版本。例如,假设您使用的是netty socketio的版本
1.7.12
jackson databind的预期版本是
2.7.4

您的项目中显然存在版本冲突,实际上,类
com.corundumstudio.socketio.protocol.JacksonJsonSupport
依赖于自版本
2.2
以来添加的方法,因此它找不到该方法,这意味着您的类路径中有一个早于
2.2
jackson-databind
版本,因此无法找到该方法


检查类路径中的所有jar,确保只有一个版本的
jackson-databind
对应于
netty-socketio
所期望的版本。例如,假设您使用的是
netty socketio
1.7.12
版本,您可以看到
jackson-databind的预期版本是
2.7.4

谢谢,这正是问题所在。谢谢,这正是问题所在。