Property "属性名" not found on object of type "类名"

这个问题其实应该很少人会遇到的,昨天一个朋友刚进新公司,拉下代码就是这个错误。让我帮忙看一下。

这里写图片描述

然后点进去看一下是这样的:

这里写图片描述

command 点进这个属性,发现这个属性确实在:

这里写图片描述

我知道可能是有两个同样的文件在搞鬼,于是搜了一下文件:

这里写图片描述

然而只有这一个文件,点进去还确实有这个属性,很奇怪。这时候就要想,是不是有一个相同名字的文件只放在finder中并没有加到工程里面呢?

于是,我去finder中找了一下这个类名,果然:

这里写图片描述

左边的这对文件并没有加到工程中,并且打开.h文件中并没有这个属性。(这TMD谁干的)其他的都是一样的。

那么,问题找到了,果断把左边的删除,在编译:

这里写图片描述

成功解决!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这个报错通常是因为 ActiveMQ 在尝试从消息中获取类型ID(type id)时找不到对应的属性(_type),导致出现了异常。 解决这个问题需要检查发送方是否在消息中设置了正确的类型ID属性,也需要确保接收方在接收消息时能够正确地读取该属性。此外,还需要检查 ActiveMQ 的配置是否正确,确保它能够正确地解析消息中的类型ID属性。 具体的解决方案可能因情况而异,可以尝试查看详细的异常信息或者 ActiveMQ 的日志以获取更多的信息。同时,还可以参考 ActiveMQ 的官方文档或者社区论坛中的讨论,以获取更多关于该问题的解决方案。 ### 回答2: ActiveMq接收消息报错“Could not find type id property [_type] on message”,这个错误通常是由于接收的消息缺少类型标识属性引起的。在ActiveMq中,消息发送和接收是基于Java对象的,而消息的类型标识属性用于在接收端将消息转换成对应的Java对象。 要解决这个错误,需要确保在发送消息时,消息对象中包含了正确的类型标识属性。类型标识属性的默认称是"_type",它通常用于存储消息的Java类名。在发送消息之前,可以通过设置消息的String属性"_type"来指定消息的类型标识属性,如下所示: ```java Message message = session.createTextMessage("Hello, World!"); message.setStringProperty("_type", "com.example.MessageType"); ``` 在接收消息时,需要根据类型标识属性将消息转换成对应的Java对象。如果消息缺少类型标识属性属性值与接收端的Java类名不匹配,就会出现上述报错。因此,在接收消息之前,需要确保接收端的Java类存在,并且类型标识属性与接收端的Java类名一致。 为了确保类型标识属性的一致性,可以在消息发送和接收的两端都定义一个公共的Java类来表示消息的类型,然后在发送消息时,使用该类的类名作为类型标识属性的值,如上述代码中的"com.example.MessageType"。在接收消息时,也可以使用该类来将消息转换成对应的Java对象,如下所示: ```java Message message = consumer.receive(); String messageType = message.getStringProperty("_type"); if ("com.example.MessageType".equals(messageType)) { // 转换成对应的Java对象并进行处理 } ``` 通过以上的设置和处理,就可以解决ActiveMq接收消息报错“Could not find type id property [_type] on message”了。 ### 回答3: ActiveMQ接收消息报错"Could not find type id property [_type] on message"可能是由于消息的类型属性type id property)没有正确设置或者缺失导致的。 在ActiveMQ中,发送和接收的消息通常是以序列化对象的形式进行传递的。为了正确地将接收的消息反序列化为相应的对象,需要在消息中包含类型标识属性type id property)。该属性用于标识消息所属的对象类型,以便正确地进行反序列化。 如果接收消息时报错"Could not find type id property [_type] on message",则需要检查以下几个可能的原因: 1. 发送消息时没有设置类型标识属性:在发送消息之前,需要确保在消息中设置了正确的类型标识属性。可以通过设置消息的属性或者在消息体内部设置属性来实现。具体的设置方法取决于使用的编程语言和框架。 2. 接收消息的代码没有正确处理类型标识属性:接收消息时,需要通过读取消息的类型标识属性来确定消息的对象类型,以便正确地进行反序列化。如果接收消息的代码没有正确处理类型标识属性,就会报错"Could not find type id property [_type] on message"。检查接收消息的代码,确保正确处理类型标识属性。 3. 消息的类型标识属性称不正确:ActiveMQ默认使用"_type"作为类型标识属性称。如果发送消息时设置了其他称的类型标识属性,那么在接收消息时,需要确保使用相同的属性称来读取类型标识。检查消息发送和接收代码,确保类型标识属性一致。 综上所述,如果出现"Could not find type id property [_type] on message"的报错,可以检查消息的类型标识属性是否正确设置,并确保接收消息的代码正确处理该属性。在处理类型标识属性时,还需注意保持发送和接收代码的一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值