使用Jackson ObjectMapper的ClassNotFound异常

时间:2012-01-26 12:38:39

标签: java maven spring-mvc glassfish-3 jackson

我有一个Spring 3 MVC应用程序,我正在设置一些ajax动作。 我的控制器操作如下所示:

@RequestMapping(value="add", method=RequestMethod.POST)
@Secured("ROLE_USER")
@ResponseStatus(HttpStatus.CREATED)
public @ResponseBody Plan addPlan(@RequestBody Plan plan, Principal principal) {
     //Save the plan
}

当我从浏览器发布计划数据时,应用会抛出ClassNotFound异常:

java.lang.ClassNotFoundException: org.joda.time.ReadableInstant not found by jackson-mapper-asl [176]
at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:787)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Plan对象本身不包含任何joda-date类型。虽然它包含一组对象。最初我通过我的DOA jar拉入joda-date jar,但即使我在我的web项目的pom.xml中添加了一个直接依赖项,错误仍然存​​在。我在这个项目的其他地方使用joda课程没有任何问题。

其他信息 以下是我的web pom.xml中的相关依赖项:

<dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.0</version>
</dependency>
<dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.3</version>
</dependency>
<dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.3</version>
</dependency>

2 个答案:

答案 0 :(得分:1)

我以某种方式遇到了这个问题:Apache FTP server is not seeing a logging jar package that exists in the class path

他们在glassfish-web.xml中设置<class-loader delegate="false">的解决方案似乎解决了我的问题。

答案 1 :(得分:0)

我在Glassfish JIRA https://java.net/jira/browse/GLASSFISH-20808

上报告了此情况