Java 使用Jackson ObjectMapper发现ClassNotFound异常
我有一个Spring3MVC应用程序,我正在为它设置一些ajax操作。 我的控制器操作如下所示:Java 使用Jackson ObjectMapper发现ClassNotFound异常,java,maven,spring-mvc,glassfish-3,jackson,Java,Maven,Spring Mvc,Glassfish 3,Jackson,我有一个Spring3MVC应用程序,我正在为它设置一些ajax操作。 我的控制器操作如下所示: @RequestMapping(value="add", method=RequestMethod.POST) @Secured("ROLE_USER") @ResponseStatus(HttpStatus.CREATED) public @ResponseBody Plan addPlan(@RequestBody Plan plan, Principal principal) { /
@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)
计划对象本身不包含任何joda日期类型。尽管它包含了一个对象集合,但这些对象。最初我是通过DOA jar拉入joda date jar的,但即使我向web项目的pom.xml添加了直接依赖项,错误仍然存在。我在这个项目的其他地方使用了joda类,没有任何问题
其他信息
以下是my 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
org.codehaus.jackson
jackson core asl
1.9.3
org.codehaus.jackson
杰克逊地图绘制者
1.9.3
我不知怎的遇到了这个问题:
他们在glassfish-web.xml中设置
的解决方案似乎已经解决了我的问题。我已经在glassfish JIRA上报告了这一点您能发布POM的相关部分吗?你可以经常做一件事来验证,那就是解压你的WAR,并确保Joda jar在WEB-INF库文件夹中。你是否将你的webapp部署到OSGi服务器中?@Perception我在上面添加了一大块pom。我已经验证了joda time jar在我的war文件中。@Luciano我正在从netbenas内部部署到本地glassfish服务器上。噢,我对glassfish不太熟悉,但它似乎使用了OSGi/Felix。您是否正在使用Glassfish服务,或者您的Spring应用程序是独立的?(例如,如果您的数据源是在Glassfish中定义的,或者它们是您应用程序的SpringBean)。我想的是,如果您可以尝试将您的应用程序部署在一个更简单的服务器(如Tomcat)上,并查看错误是否仍然发生。