Eclipse RCP java.lang.NoClassDefFoundError:javax / validation / ConstraintViolationException

时间:2015-09-29 12:01:21

标签: java eclipse eclipselink rcp

我使用eclipse Luna存储库编写了一个RCP应用程序。

现在我想更新到火星。

因此我更改了目标定义,因此请使用mars存储库。 我的应用程序正在启动,但如果我使用一些代码片段,包括我的XML Marshaller,我得到

  

java.lang.ClassNotFoundException:org.eclipse.persistence.moxy_2.6.0.v20150309-bf26070找不到javax.validation.ConstraintViolationException

消息很明确,缺少javax.validation.ConstraintViolationException。 我查看了目标定义的内容,找不到javax.validation

所以是的,它会丢失,但为什么?

EclipseLink MOXy包含在eclipse Luna存储库中。 Mars插件缺少此插件,​​所以我添加了

  

http://download.eclipse.org/rt/eclipselink/updates/

获取MOXy插件。但我不知道在哪里可以找到丢失的javax.validation插件。

有什么想法吗?

有人说要从里程碑更新网站获取javax.validation但我在http://download.eclipse.org/rt/eclipselink/milestone-updates/上找不到任何不同的

编辑1

没有人?

为了进行测试,我已将eclipselink 2.6.1下载的zip目录添加到我的目标定义中,并显示“javax.validation”

enter image description here

构建过程运行正常。 但是如果我想构建一个Marshaller,就会抛出异常。

enter image description here

我认为moxy实现正在寻找该类的类路径有问题,因为类javax.validation_1.1.0.v201304101302.jar中存在类ConstraintViolationException

2 个答案:

答案 0 :(得分:2)

我本周也遇到过这个问题: - /

以下只对我有用!

获取插件

导航至http://download.eclipse.org/rt/eclipselink/updates/2.6.1.v20150916-55dc7c3/plugins/。然后单击"显示目录内容"。下载以下插件:

  • javax.validation_1.1.0.v201304101302.jar
  • org.glassfish.javax.json_1.0.4.v201311181159.jar(对于javax.json。*,我想我的环境需要它.YMMV。)

导入插件

然后,导入插件。在Eclipse中,文件→导入→插件开发→插件和片段

单击“下一步”。

关于导入插件和片段:

  • 从:目录导入。 (选择包含最近下载的插件的目录)
  • 要导入的插件和片段:从指定位置找到的所有插件和片段中选择
  • 导入为:二进制项目

单击“下一步”

在“选择”中,再次选择插件。我检查了第一个和第三个复选框(默认?)。

添加为依赖

然后转到您的插件并添加两个新插件作为依赖项。

答案 1 :(得分:1)

我相信这已经在2.6.0发布之后。你能试试http://download.eclipse.org/rt/eclipselink/nightly-updates吗?