qq_45969339 2021-11-26 17:14
浏览 52
已结题

使用LogicalHandler时无法将payload强制转换为JAXBElement类型

问题遇到的现象和发生背景

if (payload instanceof JAXBElement) //这条语句恒为false

问题相关代码,请勿粘贴截图
public boolean handleMessage(LogicalMessageContext ctx) {
Boolean outbound_p = (Boolean)
ctx.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (outbound_p) {
LogicalMessage msg = ctx.getMessage();
try {
JAXBContext jaxb_ctx = JAXBContext.newInstance("client");
Object payload = msg.getPayload(jaxb_ctx);
Object obj = ((JAXBElement)payload).getValue();//报错语句,无法强制转换
//GetCountryCityByIp gic=(GetCountryCityByIp)obj;
if (payload instanceof JAXBElement) {
    System.out.println("Here's the test.")
}
String test=payload.getClass().toString();
System.out.println(test);
}
运行结果及报错内容

img

我的解答思路和尝试过的方法

按理说强制转换应该是在if语句成立条件下进行的,但测试用的打印却没有运行,后来查看了一下payload的类型,属于类类型,似乎与期望的JAXBElement类型不符

我想要达到的结果

通过if语句,能够输出测试语句,将payload能够转换为JAXBElement类型

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月4日
    • 创建了问题 11月26日

    悬赏问题

    • ¥15 有偿求指导实证代码。cfps清洗合并后,无论是构建平衡面板还是非平衡面板,都是只剩几百个样本量。求指导一下哪里出问题了,不要潦草回复
    • ¥15 mutlinichenet
    • ¥50 Qt5.14.2怎样使用qlistwidget存储指针类数据并更新?
    • ¥15 STM32多路复用器ADC采样
    • ¥20 Linux(ubuntu)操作相关问题
    • ¥15 python深度学习代码求跑
    • ¥100 对接美团闪购医药接口相关问题
    • ¥15 嵌入式软件电子烟开发
    • ¥15 职场 Excel 查重问题
    • ¥15 求怎么用idea2021.3.2创建web项目并配置tomcat