gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:43 25 4
gpt4 key购买 nike

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

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

尤其是这一行

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

最佳答案

您显然有 jackson-databind 版本冲突在您的项目中,确实类 com.corundumstudio.socketio.protocol.JacksonJsonSupport 依赖于方法 SimpleModule#setSerializerModifier(BeanSerializerModifier mod)这是从 2.2 版本开始添加的,因此无法找到该方法,这意味着您的类路径中的 jackson-databind 版本早于 2.2,因此无法找到该方法。

检查类路径中的所有 jar,并确保只有一个版本的 jackson-databindnetty-socketio 所需的版本相对应。例如,假设您使用 netty-socketio 版本 1.7.12,则 jackson-databind 的预期版本为 2.7.4,如您所见 here .

关于netty-socketio 服务器中的 java.lang.NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41207315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com