簡體   English   中英

Intershop studio 4.20.0 - compileJava - ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory

[英]Intershop studio 4.20.0 - compileJava - ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory

升級到 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 構建有關,我看到工作室使用 IntershopStudio.ini 中指定的插件 JRE v11。

I have tried setting explicit JDK path in my user folder gradle.properties (didn't help) then in Window -> Preferences -> Gradle -> Arguments which also didn't help. 編譯錯誤和JDK配置

我也嘗試在 IntershopStudio.ini 中設置 JDK,但它不會啟動,因為它至少需要版本 11。

請不要說 Gradle 任務在從命令行運行時工作,這就是為什么我認為它是特定於工作室的。

請告知如何解決此問題。

我不知道這個的根本原因(也發生在我身上)。 但是您可以通過將系統屬性“javax.xml.bind.context.factory”設置為“com.sun.xml.internal.bind.v2.ContextFactory”來使用解決方法。 這可以通過多種方式完成,但我發現在 gradle.properties 中設置它是最簡單的,所以只需 append 在 gradle.properties 文件中添加以下行:

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

在此之后,從 Studio 構建的 gradle 應該可以再次工作。

首先,確保在工作室根文件夾的 studio.ini 文件中為 JVM 設置正確的 JDK 11。 (目前不確定正確的文件名,但您知道是哪一個。)嵌入式 JDK 不適合許多用例。

其次,確保通過開發人員 shell(gradle 環境 bat)打開工作室,它提供了正確的 JAVA_HOME 用於構建(如果您部署了服務器)。 或者,在工作室的 Intershop 首選項中設置 gradle 環境 bat 或服務器安裝。

第三,確保您的 JDK 運行時首選項默認為 JDK 8(或服務器 JDK)。 (應該是粗體)

最后,確保您的 gradle 設置使用包裝器就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM