gpt4 book ai didi

java - 不支持的 AMF 版本

转载 作者:搜寻专家 更新时间:2023-11-01 03:39:09 25 4
gpt4 key购买 nike

我遇到了以下异常:

[BlazeDS] Unsupported AMF version 4,660. 
flex.messaging.MessageException: Unsupported AMF version 4,660.
at flex.messaging.io.amf.AmfMessageDeserializer.readMessage(AmfMessageDeserializer.java:93)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:114)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:274)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:377)

我使用的是 BlazeDS3.0.0.544 版本,尽管我发现有多个帖子都在谈论升级到 3.2 版本以便解决类似的问题,我认为这不是解决我的问题的正确方法。我找到的帖子谈到看到不受支持的版本 1。当我查看 BlazeDS 版本 3.2 中的修复时,版本 1 似乎已转换为 0( AMF1 到 AMF0)。对于除 0、1 和 3(分别为 AMF0、AMF1 和 AMF3) 之外的任何其他版本,都会抛出上述异常。

有谁知道可能导致此异常的原因是什么? (我不是说 BlazeDS 抛出异常,我明白了。)我要问的是为什么版本是 4660 而不是 0 或 3。

最佳答案

您是否从源代码管理中检查了最新版本的 Blazeds?

我查看了代码,在我看来,这看起来像是他们代码中的错误。再往下看,寻找LOOK_HERE。那个条件在我看来是不可能的?为什么不下载此代码并将其添加到您的项目中,注释掉该条件并查看会发生什么。

以下代码来自AmfMessageDeserializer.java .

int version = amfIn.readUnsignedShort();

// Treat FMS's AMF1 as AMF0.
if (version == MessageIOConstants.AMF1)
version = MessageIOConstants.AMF0;

// <LOOK_HERE>
if (version != MessageIOConstants.AMF0 && version != MessageIOConstants.AMF3)
{
//Unsupported AMF version {version}.
MessageException ex = new MessageException();
ex.setMessage(UNSUPPORTED_AMF_VERSION, new Object[] {new Integer(version)});
ex.setCode(CODE_VERSION_MISMATCH);
throw ex;
}

关于java - 不支持的 AMF 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19688254/

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