Giter Site home page Giter Site logo

Comments (15)

danielsawan avatar danielsawan commented on July 20, 2024

奇怪的是,即使在java 11中,我在生产中也有这个错误,但在开发中没有。我有点糊涂了。

com.alibaba.fastjson.JSONException: can not get javaBeanDeserializer. java.lang.Integer
at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1551)
at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:1103)
at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1062)
at com.alibaba.fastjson.JSONObject.getObject(JSONObject.java:163)
at org.noear.solon.serialization.fastjson.FastjsonJsonActionExecutor.changeValue(FastjsonJsonActionExecutor.java:57)
at org.noear.solon.core.handle.ActionExecutorDefault.buildArgs(ActionExecutorDefault.java:96)
at org.noear.solon.core.handle.ActionExecutorDefault.execute(ActionExecutorDefault.java:42)

from solon.

danielsawan avatar danielsawan commented on July 20, 2024

事实上,我意识到,当我们使用maven包,并启动创建的jar时。

java - jar solonServer.jar

然后我们得到javaBeanDeserializer错误

现在,如果我们直接从maven运行服务器

mvn exec:java -Dexec.mainClass="com.test.Server"

因此,这一切都很有效。

from solon.

danielsawan avatar danielsawan commented on July 20, 2024

工作时的日志

mvn exec:java -Dexec.mainClass="com.test.Server

[Solon] App: Start loading
[Solon] jar:file:/root/.m2/repository/org/noear/solon.boot.socketd.smartsocket/1.8.0/solon.boot.socketd.smartsocket-1.8.0.jar!/META-INF/solon/solon.boot.socketd.smartsocket.properties
[Solon] jar:file:/root/.m2/repository/org/noear/solon.socketd.client.smartsocket/1.8.0/solon.socketd.client.smartsocket-1.8.0.jar!/META-INF/solon/solon.socketd.client.smartsocket.properties
[Solon] jar:file:/root/.m2/repository/org/noear/solon.socketd/1.8.0/solon.socketd-1.8.0.jar!/META-INF/solon/solon.extend.socketd.properties
[Solon] jar:file:/root/.m2/repository/org/noear/nami.channel.socketd/1.8.0/nami.channel.socketd-1.8.0.jar!/META-INF/solon/org.noear.nami.channel.socketd.properties
[Solon] jar:file:/root/.m2/repository/org/noear/solon.serialization.fastjson/1.8.0/solon.serialization.fastjson-1.8.0.jar!/META-INF/solon/solon.serialization.fastjson.properties
[Solon] jar:file:/root/.m2/repository/org/noear/nami/1.8.0/nami-1.8.0.jar!/META-INF/solon/org.noear.nami.properties
[Solon] View: mapping: @json=StringSerializerRender#FastjsonSerializer
[Solon] View: mapping: @type_json=StringSerializerRender#FastjsonSerializer
[Solon] Server:main: SmartSocket 1.5(smartsocket-socketd)
smart-socket server started on port 28080,threadNum:16
smart-socket server config is IoServerConfig{readBufferSize=512, writeBufferSize=128, writeBufferCapacity=16, host='null', monitor=null, port=28080, backlog=1000, processor=org.noear.solon.boot.socketd.smartsocket.AioServerProcessor@12da0334, protocol=org.noear.solon.socketd.client.smartsocket.AioProtocol@66fbd88c, bannerEnabled=false, socketOptions=null, threadNum=16, bufferFactory=org.smartboot.socket.buffer.BufferFactory$$Lambda$55/381544728@4ec2e38c, aioEnhance=true}
[Solon] Connector:main: smartsocket-socketd: Started ServerConnector@{[Socket]}{0.0.0.0:28080}
[Solon] Server:main: smartsocket-socketd: Started @21ms
[Solon] App: End loading elapsed=162ms pid=192454

不起作用时的日志

java - jar solonServer.jar

[Solon] App: Start loading
[Solon] jar:file:/root/solontest/solontest-0.0.1-SNAPSHOT.jar!/META-INF/solon/solon.boot.socketd.smartsocket.properties
[Solon] jar:file:/root/solontest/solontest-0.0.1-SNAPSHOT.jar!/META-INF/solon/solon.socketd.client.smartsocket.properties
[Solon] jar:file:/root/solontest/solontest-0.0.1-SNAPSHOT.jar!/META-INF/solon/solon.extend.socketd.properties
[Solon] jar:file:/root/solontest/solontest-0.0.1-SNAPSHOT.jar!/META-INF/solon/org.noear.nami.channel.socketd.properties
[Solon] jar:file:/root/solontest/solontest-0.0.1-SNAPSHOT.jar!/META-INF/solon/solon.serialization.fastjson.properties
[Solon] jar:file:/root/solontest/solontest-0.0.1-SNAPSHOT.jar!/META-INF/solon/org.noear.nami.properties
[Solon] View: mapping: @json=StringSerializerRender#FastjsonSerializer
[Solon] View: mapping: @type_json=StringSerializerRender#FastjsonSerializer
[Solon] Server:main: SmartSocket 1.5(smartsocket-socketd)
smart-socket server started on port 28080,threadNum:16
smart-socket server config is IoServerConfig{readBufferSize=512, writeBufferSize=128, writeBufferCapacity=16, host='null', monitor=null, port=28080, backlog=1000, processor=org.noear.solon.boot.socketd.smartsocket.AioServerProcessor@53f65459, protocol=org.noear.solon.socketd.client.smartsocket.AioProtocol@3b088d51, bannerEnabled=false, socketOptions=null, threadNum=16, bufferFactory=org.smartboot.socket.buffer.BufferFactory$$Lambda$51/1651855867@1786dec2, aioEnhance=true}
[Solon] Connector:main: smartsocket-socketd: Started ServerConnector@{[Socket]}{0.0.0.0:28080}
[Solon] Server:main: smartsocket-socketd: Started @13ms
[Solon] App: End loading elapsed=95ms pid=192874
com.alibaba.fastjson.JSONException: can not get javaBeanDeserializer. java.lang.Integer
        at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1551)
        at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:1103)
        at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1062)
        at com.alibaba.fastjson.JSONObject.getObject(JSONObject.java:163)
        at org.noear.solon.serialization.fastjson.FastjsonJsonActionExecutor.changeValue(FastjsonJsonActionExecutor.java:57)
        at org.noear.solon.core.handle.ActionExecutorDefault.buildArgs(ActionExecutorDefault.java:96)
        at org.noear.solon.core.handle.ActionExecutorDefault.execute(ActionExecutorDefault.java:42)
        at org.noear.solon.core.handle.Action.callDo(Action.java:343)
        at org.noear.solon.core.handle.Action.invoke0(Action.java:285)
        at org.noear.solon.core.handle.Action.invoke(Action.java:215)
        at org.noear.solon.core.handle.Action.handle(Action.java:194)
        at org.noear.solon.core.route.RouterHandler.handleOne(RouterHandler.java:81)
        at org.noear.solon.core.route.RouterHandler.handle(RouterHandler.java:46)
        at org.noear.solon.SolonApp.doFilter(SolonApp.java:667)
        at org.noear.solon.core.handle.FilterChainNode.doFilter(FilterChainNode.java:22)
        at org.noear.solon.SolonApp.tryHandle(SolonApp.java:636)
        at org.noear.solon.socketd.SocketContextHandler.handle(SocketContextHandler.java:31)
        at org.noear.solon.socketd.RouterListener.onMessage0(RouterListener.java:114)
        at org.noear.solon.socketd.RouterListener.lambda$onMessage$1(RouterListener.java:74)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: com.alibaba.fastjson.JSONException: can not get javaBeanDeserializer. java.lang.Integer
        at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1547)
        ... 23 more

from solon.

noear avatar noear commented on July 20, 2024

要不,你们把序列化框架换成:snack3 试试?

solon-rpc 默认用的就是:snack3

from solon.

noear avatar noear commented on July 20, 2024

感觉这个问题有2种可能:

  1. 本地 .m2 下缓存的包有问题
  2. 或者有可能,你独立引入了 fastjson 的包,但它的版本号与 solon 里的不一至

但,还是建议用 snack3 试试:)

from solon.

danielsawan avatar danielsawan commented on July 20, 2024

我不记得为什么我决定使用fastjson而不是snack3。snack3是否有相当于@JsonIgnore的功能?

from solon.

noear avatar noear commented on July 20, 2024

有两种方案:

  1. 用注解 @ONodeAttr(deserialize=false, serialize=false)
  2. 使用 java 关键字 transient

from solon.

noear avatar noear commented on July 20, 2024

先试试 snack3 (它是我的框架,我随时方便改;fastjson 是别人的,不能随时改动)

from solon.

danielsawan avatar danielsawan commented on July 20, 2024

我发现了我的问题。我有几个名字相同但参数不同的方法。这在java中是允许的,但在Solon RPC中不允许。我在调试问题的时候都快疯了!

from solon.

danielsawan avatar danielsawan commented on July 20, 2024

是的,我知道Snack3是你的框架。我将仔细研究一下。你能做这么多事,真令人吃惊!"。
再次感谢您的帮助。

from solon.

noear avatar noear commented on July 20, 2024

对。。。Solon RPC 不支持同名的函数:)

from solon.

noear avatar noear commented on July 20, 2024

现在全通了吗?

from solon.

noear avatar noear commented on July 20, 2024

这是我的一站式服务治理平台:https://github.com/noear/water

可以理解为微服务架构支持套件。5个服务包合计40m大小,超轻量级。功能相当于:consul + rabbitmq + elk + prometheus + openFaas + quartz +等等并有机结合在一起。对 k8s 友好,支持 ip 漂移、支持 k8s svc 映射。简单工作,早点下班:)

有空,也可以看看:)

from solon.

noear avatar noear commented on July 20, 2024

你有QQ或者微信的话,可以方便跟我随时交流。

from solon.

danielsawan avatar danielsawan commented on July 20, 2024

哇,你是一个真正的机器。好吧,我把这个链接加入书签。如果你愿意,我可以在我的下一个虫子上安装微信,如果你认为它更容易聊天的话。
否则,是的,票据问题就解决了。再次感谢!

from solon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.