java - Intershop studio 4.20.0 - 编译Java - ClassNotFoundException : com. sun.xml.bind.v2.ContextFactory

标签 java gradle intershop

升级到 Intershop studio 4.20.0 后,我在编译 java 时遇到问题。 我收到的消息是

javax.xml.bind.JAXBException
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
    at     com.intershop.beehive.pipeline.internal.definition.PipelineNodeDefinitionSerializer.serialize(PipelineNodeDefinitionSerializer.java:38)
    ... 42 more
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory

在谷歌上搜索此消息后,我发现它与使用 Java 11 进行构建有关,并且我看到 studio 使用 IntershopStudio.ini 中指定的插件 JRE v11。

我尝试在我的用户文件夹 gradle.properties 中设置显式 JDK 路径(没有帮助),然后在 Window -> Preferences -> Gradle -> Arguments 中设置显式 JDK 路径,这也没有帮助。 Compile error and JDK configuration

我还尝试在 IntershopStudio.ini 中设置 JDK,但它无法启动,因为它至少需要版本 11。

请注意,Gradle 任务在从命令行运行时可以工作,这就是为什么我相信它是工作室特定的。

请告知如何解决此问题。

最佳答案

我不知道这个问题的根本原因(也发生在我身上)。但是您可以通过将系统属性“javax.xml.bind.context.factory”设置为“com.sun.xml.internal.bind.v2.ContextFactory”来使用解决方法。 这可以通过多种方式完成,但我发现在 gradle.properties 中设置它是最简单的,因此只需将以下行附加到 gradle.properties 文件中即可:

systemProp.javax.xml.bind.context.factory=com.sun.xml.internal.bind.v2.ContextFactory

在 Studio 构建此 gradle 后,应该可以再次工作。

关于java - Intershop studio 4.20.0 - 编译Java - ClassNotFoundException : com. sun.xml.bind.v2.ContextFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70710037/

相关文章:

java - 从数组中找到最小值 - 我不明白

java - 是否可以使用 iText 以编程方式将 'Open a web link action' 操作添加到 acroform 字段?

Gradle 依赖设置困惑

unity-game-engine - 在 Unity 中使用 API 创建购物车

java - SharedPreferences:为什么我的值没有被覆盖?

java - 如何在java中获取时间

command-line - 如何使用命令行将文件部署到Artifactory?

gradle "could not parse pom"但本地 pom 存在

orm - SQLScriptPreparer 空指针异常

groovy - 如何消除编译任务期间的随机常规错误