java - Android/Jackson ObjectMapper 垃圾邮件日志包含 "Unable to resolve java.lang.Class<...> annotation class ..."

标签 java android jackson

我大量使用 Jackson 来序列化和反序列化数据,在 servlet(后端)和客户端(android 应用程序)使用的公共(public)库中使用类和 POJO,以及设备上的文件存储以实现网络优化目的。 从功能上讲,我的代码按预期工作。

从后端来看,我的日志没有任何可疑之处。 但在 android 中,每次我使用 ObjectMapper 进行序列化或反序列化时,我都会遇到 logcat lignes,例如:

2019-12-22 08:09:54.653 fr.bel.app I/ntdb: userRefresh() : Requesting API...
2019-12-22 08:09:54.661 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.StringWrapper> annotation class 42
2019-12-22 08:09:54.661 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.StringWrapper> annotation class 41
2019-12-22 08:09:54.672 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.UserResponse> annotation class 42
2019-12-22 08:09:54.672 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.Response> annotation class 42
2019-12-22 08:09:54.672 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.Response> annotation class 41
2019-12-22 08:09:54.673 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.Response> annotation class 41
2019-12-22 08:09:54.673 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.UserResponse> annotation class 41
2019-12-22 08:09:54.675 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.User> annotation class 42
2019-12-22 08:09:54.677 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.User> annotation class 42
2019-12-22 08:09:54.677 fr.bel.app I/app: Unable to resolve java.lang.Class<fr.bel.User> annotation class 41

这是类声明的示例:

package fr.thelium.nottransdb;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class StringWrapper {
    @XmlElement private String string;

    public StringWrapper(String string) {
        this.string = string;
    }

    public StringWrapper() {
        string=null;
    }

    public String getString() {
        return string;
    }

    public void setString(String string) {
        this.string = string;
    }

    @Override
    public String toString() {
        return string;
    }
}

我也尝试不使用@XmlElement =>相同的结果(应用程序工作,但日志中的消息相同)

以下是产生这些结果的示例:

public void store() {
    /* Storing */
    ObjectMapper objectMapper=new ObjectMapper();
    try {
        File file = new File(TrackingSingleton.getInstance().getMainActivity().getFilesDir(), DEVICE_PERSISTED_DATA_FILENAME);
        objectMapper.writeValue(file, getNotificationList());
        Log.i(TAG,"Successfully persisted device data");
    }
    catch (Exception e) {
        Log.e(TAG,"Failed to persist device data : ",e);
    }
}

知道我可能做错了什么吗? 预先非常感谢您提供的任何帮助:)

最佳答案

我终于通过删除 XmlElement 和 XmlRootElement 注释获得了干净的日志。 (我只尝试在发布之前删除 XmlElement:还不够)。

关于java - Android/Jackson ObjectMapper 垃圾邮件日志包含 "Unable to resolve java.lang.Class<...> annotation class ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59442561/

相关文章:

java - 为什么这个 for 语句在 Java 中显示死代码?

android - 使用 Robolectric 和 ANT 进行测试

android - 如何在自定义 Spinner DropDownView 中指定选择事件?

json - Spring Boot 在 json 中包含 ID 字段

java - jackson-databind 与 spring-core 的问题

java - 什么被认为是 Java 核心模块?

java - 如何在 JavaFX 中禁用或绕过硬件图形加速(Prism)

java - com.microsoft.sqlserver.jdbc.SQLServerException : The server version is not supported. 目标服务器必须是SQL Server 2000或更高版本

android - 对 ViewPager 的 PagerAdapter 有误解。 InstantianteItem 方法永远不会被调用

spring-mvc - Ext JS + Spring MVC 中的递归数据结构