用于 JodaTime 库的 GlassFish 上的 NetBeans jersey Restful Web 服务中的 java.lang.NoClassDefFoundError

发布于 2024-12-26 05:12:23 字数 426 浏览 1 评论 0原文

您好,我目前正在使用 Jackson 库的 GlassFish Server 上的 NetBeans Restful Web 服务中使用 JodaTime 库。

当我尝试在资源文件之一中创建使用 JodaTime 库的类的实例时,我收到 org/joda/time/ReadablePartial 的 java.lang.NoClassDefFoundError 错误。 例如:

在studentResource 文件中:

     Controller c = new Controller();

Controller 类导入并使用JodaTime 库的地方,

我已经检查了我需要的库是否在项目中。 事实上,如果我在 Restful Web 服务之外运行一个单独的项目,一切都会顺利进行。我还需要解决其他类路径问题吗?

Hi I am currently using the JodaTime library in my NetBeans restful web services on GlassFish Server using Jackson libraries.

I get a java.lang.NoClassDefFoundError for org/joda/time/ReadablePartial when I try to create an instance of a class that uses the JodaTime library in one of the Resource files.
E.g:

In the studentResource file:

     Controller c = new Controller();

Where the Controller class imports and uses JodaTime libraries

I have checked that the libraries I needed are in the project.
In fact, if I run a separate project outside of the restful web services, everything runs smoothly. Is there an additional classpath issue that I have to address?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

渡你暖光 2025-01-02 05:12:23

如果有人在使用 Spring 时偶然发现同样的问题:

如果您尝试使用 Jackson 将 JSON 映射到 Java 对象,或者通过控制器参数上的 @RequestBody 注释或使用 ObjectMapper().readValue(json, Class 手动反序列化),则会出现此问题。班级)。在本地计算机上一切正常,但将应用程序部署到 GlassFish 时反序列化失败。

Keeg 将 Joda-Time.jar 复制到 glassfish/modules 并重新启动的解决方法修复了该问题。

Jira 上似乎有一个关于此问题的错误:
https://java.net/jira/browse/GLASSFISH-20808

In case someone stumbles upon the same problem using Spring:

This problem comes up if you are trying to map JSON to a Java object using Jackson either via @RequestBody annotation on controller parameter or manually deserializing using an ObjectMapper().readValue(json, Class.class). Everything works fine on local machine but when deploying application to GlassFish deserialization fails.

Keeg's workaround to copy Joda-Time.jar to glassfish/modules and restarting fixes the issue.

There seems to be a bug open on Jira about this issue:
https://java.net/jira/browse/GLASSFISH-20808

别靠近我心 2025-01-02 05:12:23

以防万一其他人偶然发现这个问题,我们在使用 Glassfish 3.1.1、Jersey 和 Joda 时间的组合时也遇到了类似的问题。像这样的堆栈跟踪:

Caused by: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant not found by jackson-mapper-asl [128]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)

等等。

我刚刚找到的解决方法是将我们的 joda-time jar 的副本转储到 glassfish/modules 中。不完全漂亮,但是...

Just in case someone else stumbles upon this problem, we had a similar issue with the combination of Glassfish 3.1.1, Jersey and use of Joda time. Stacktraces like this:

Caused by: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant not found by jackson-mapper-asl [128]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)

etc.

The workaround I just found was dumping a copy of our joda-time jar into glassfish/modules. Not exactly pretty, but...

平安喜乐 2025-01-02 05:12:23

好吧,我找到了解决方案。显然我需要做的就是将 jar 文件移到库/jar 文件列表中。我在项目属性的库选项卡中执行此操作。更具体地说,必须将 jar 文件移至 REST 库之上。

Ok I found the solution. Apparently all I needed to do was to move the jar file up in the list of libraries/jar files. I do that in the library tab in the project's properties. More specifically, the jar file has to be moved above the REST libraries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文