标签: fasterxml

java.lang.ClassNotFoundException/NoClassDefFoundError for com/fasterxml/jackson/databind/ObjectMapper with Maven

尝试运行使用jackon的ObjectMapper类的java程序时出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
  at com.inin.dynamotransfer.DynamoTransfer.importData(DynamoTransfer.java:133)
  at com.inin.dynamotransfer.DynamoTransfer.main(DynamoTransfer.java:67)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
  ... 2 more
Run Code Online (Sandbox Code Playgroud)

我有杰克逊的注解,数据绑定(包含ObjectMapper),以及核心的JAR文件中在〜/ .m2目录/库我的Maven仓库/ COM/fasterxml /杰克逊/核心/ jackson- [包名] /2.4.0.这是我的pom.xml的依赖项部分:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.4.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.4.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.4.0</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

这是我的CLASSPATH:

:/Users/myusername/Library/Java/Extensions:/Library/Java/Extensions:/Users/myusername/.m2/repository
Run Code Online (Sandbox Code Playgroud)

所以Maven知道所有这些JAR - 在哪里获取em,在哪里放em等等 - 但java本身似乎无法找到我需要的类.我究竟做错了什么??谢谢!

java classpath maven fasterxml

10
推荐指数
2
解决办法
4万
查看次数

将JSON对象数组映射到java.util.Map,反之亦然

问题是如何将JSON对象数组映射到java.util.Map每个键都是对象的某个指定属性的位置,值是对象本身.

JSON:

{"items": [{"field1": 1, "field2": "Hello"}, {"field1": 2, "field2":"World"}]}
Run Code Online (Sandbox Code Playgroud)

Java POJO:

public class Storage {
    private Map<Integer, Item> items;
}

public class Item {
    private Integer field1;
    private String field2;
}
Run Code Online (Sandbox Code Playgroud)

那么有什么方法可以指定在将数组项反序列化时ObjectMapper应该使用field1每个JSON对象的属性作为键Map吗?

java json fasterxml

10
推荐指数
1
解决办法
5325
查看次数

在使用Jackson进行反序列化时,如何放松命名策略?

我一直在尝试升级JSON模块以使用Jackson的FasterXML(2.6.3)版本而不是旧的Codehaus模块.在升级过程中,我注意到使用FasterXML而不是Codehaus时命名策略有所不同.

Codehaus在命名策略方面更灵活.下面的测试突出了我用FasterXML面临的问题.我如何配置ObjectMapper它遵循Codehaus相同的策略?

我不能改变JSONProperty注释,因为有数百个注释.我希望升级在命名策略方面向后兼容.

import java.io.IOException;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
/*import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.PropertyNamingStrategy;*/
import org.junit.Assert;
import org.junit.Test;

public class JSONTest extends Assert {

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Product {

        @JsonProperty(value = "variationId")
        private String variantId;

        @JsonProperty(value = "price_text")
        private String priceText;

        @JsonProperty(value = "listPrice")
        public String listPrice;

        @JsonProperty(value = "PRODUCT_NAME")
        public String name;

        @JsonProperty(value = "Product_Desc")
        public String description;
    }

    private static final String VALID_PRODUCT_JSON = …
Run Code Online (Sandbox Code Playgroud)

java json jackson fasterxml jackson-modules

9
推荐指数
1
解决办法
3028
查看次数

jackson 序列化 csv 属性顺序

我们有一个包含 350 多列的表。生成了 pojo 类并且 getter 的顺序被搞乱了。尝试使用 jackson 的 csvmapper,但它根据 getter 顺序生成 csv。@JsonPropertyOrder 也不能使用,因为有很多列。我们在 xml 中维护列排序,并且可以在运行时生成字段顺序数组。我们可以在运行时覆盖以提供用于属性排序的字段名数组吗?我们可以使用注释内省器进行自定义吗?

java csv serialization jackson fasterxml

9
推荐指数
3
解决办法
8448
查看次数

使用toString进行rapidxml序列化并使用String构造函数进行反序列化

我有一个POJO,看起来像这样:

public class Thing
{
   private final int x;
   private final int y;
   private final int z;

   public Thing(String strThing)
   {
       // parse strThing which is in some arbitrary format to set x, y and z
   }

   @Override
   public String toString()
   {
       // return a string representation of thing
       // (same format as that parsed by the constructor)
   }

   @Override
   public boolean equals(Object obj) ...

   @Override
   public int hashCode() ...

}
Run Code Online (Sandbox Code Playgroud)

我希望将它用作映射的键​​(例如HashMap<Thing, SomeOtherPOJO>),当序列化为json时,使用Thing的toString()表示键,并且在反序列化时使用String构造函数.这可能是使用像jackson数据绑定注释这样简单的东西吗?解决这个问题的最佳方法是什么?

java json dictionary fasterxml

8
推荐指数
1
解决办法
7048
查看次数

RxJava和FasterXML是否有有效的proguard规则?

现在阻止我在生产中使用kotlin的唯一问题是我找不到正确的proguard文件.

我用过的:

1.Kotlin

2.Anko

3.Jackson-科特林模块

这是警告信息:

:app:proguardRelease
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry
Warning: rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.ConcurrentCircularArrayQueue: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.ConcurrentSequencedCircularArrayQueue: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.MpmcArrayQueueConsumerField: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.MpmcArrayQueueProducerField: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.MpscLinkedQueue: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.SpmcArrayQueueConsumerField: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.SpmcArrayQueueProducerField: can't find referenced class sun.misc.Unsafe
Warning: rx.internal.util.unsafe.SpscArrayQueue: can't …
Run Code Online (Sandbox Code Playgroud)

android proguard kotlin fasterxml rx-java

8
推荐指数
2
解决办法
7689
查看次数

yaml使用com.fasterxml.jackson解析

我试图使用jackson将yaml文件解析为模型

型号 -

public class TestModel {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

解析

private static ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
TestModel obj = mapper.readValue(yamlFile, TestModel.class);
Run Code Online (Sandbox Code Playgroud)

YAML文件

name: somename
Run Code Online (Sandbox Code Playgroud)

例外

Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'name': was expecting 'null', 'true', 'false' or NaN
[error]  at [Source: /Users/amruth.s/Documents/Analytics/hydra/reportManager/target/scala-2.9.1/classes/viz/LineGraph.yaml; line: 1, column: 6]
[error]     at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1369)
[error]     at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:599)
[error]     at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:2449)
[error]     at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:2426)
[error]     at …
Run Code Online (Sandbox Code Playgroud)

java parsing yaml jackson fasterxml

7
推荐指数
1
解决办法
8898
查看次数

在 Intellij Idea 中查找 com.fasterxml.jackson.core 的问题

我删除了一个旧项目(2 岁),但在构建项目时遇到问题,出现以下错误。

Error:(57, 29) java: cannot access com.fasterxml.jackson.core.Versioned
  class file for com.fasterxml.jackson.core.Versioned not found
Run Code Online (Sandbox Code Playgroud)

Error:(58, 29) java: cannot access com.fasterxml.jackson.core.ObjectCodec
  class file for com.fasterxml.jackson.core.ObjectCodec not found
Run Code Online (Sandbox Code Playgroud)

这是我在 pom.xml 中的依赖项

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-guava</artifactId>
    <version>2.1.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-joda</artifactId>
    <version>2.1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是问题似乎发生的地方

@Bean
public ObjectMapper objectMapper() {
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.registerModule(new GuavaModule());
    objectMapper.registerModule(new JodaModule());
    return objectMapper;
}
Run Code Online (Sandbox Code Playgroud)

我环顾四周,尝试了不同的版本,但没有运气。我这样做错了吗?这曾经奏效过。

任何帮助,将不胜感激。

谢谢

java maven fasterxml

7
推荐指数
1
解决办法
1万
查看次数

jackson fasterxml将名称空间添加到根元素

如果我有班级A.java:

@JacksonXmlRootElement(localName = "A")
public class A {

}
Run Code Online (Sandbox Code Playgroud)

产生的输出是:

 <A
    xmlns="">
Run Code Online (Sandbox Code Playgroud)

我想在输出中添加一些名称空间,即 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.com example.xsd"

如何配置A.java包含更多这样的自定义命名空间?

java xml namespaces jackson fasterxml

7
推荐指数
1
解决办法
881
查看次数

Jackson databind:无法构造“java.time.OffsetDateTime”的实例

我正在将我的项目从 dropwizard 转移到 mirconuat,并且在使用 Web 服务响应时遇到异常。我尝试升级杰克逊版本,但失败并出现警告和以下原因。

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.OffsetDateTime` (no Creators, like default constructor, exist): no String-argument constructor/factory method to deserialize from String value ('2020-06-25T05:56:44.044423+08:00')
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 206] (through reference chain: com.Port["_ModifiedAt"])
    at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
    at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1615)
    at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
    at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1077)
    at com.fasterxml.jackson.databind.deser.ValueInstantiator._createFromStringFallbacks(ValueInstantiator.java:371)
    at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:323)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromString(BeanDeserializerBase.java:1408)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:176)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:166)
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:371)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId(BeanDeserializerBase.java:1288)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:162)
    at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:2020)
    at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1179)
    at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:810)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:256)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:235)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)
    at …
Run Code Online (Sandbox Code Playgroud)

jax-rs jackson fasterxml jackson-databind java-11

7
推荐指数
1
解决办法
7758
查看次数