Jes*_*ynn 6 java jenkins weblogic12c
我在WebLogic 12c上运行Jenkins 1.613,在JBoss EAP 6.3上运行.我设法让Jenkins的email-ext插件在JBoss上运行.但是,每当我使用诸如$ PROJECT_NAME之类的令牌时,电子邮件扩展插件在WebLogic上失败(在JBoss上完全正常,我应该再次强调).
我得到以下stacktrace,这似乎表明tokenmacro插件存在一些问题.
java.lang.LinkageError: loader constraint violation: when resolving method
"com.google.common.collect.Multimaps.newListMultimap( java/util/Map; com/google/common/base/Supplier;) com/google/common/collect/ListMultimap;"
the class loader (instance of hudson/ClassicPluginStrategy$AntClassLoader2) of the current class, org/jenkinsci/plugins/tokenmacro/Tokenizer,
and the class loader (instance of sun/misc/Launcher$AppClassLoader) for resolved class, com/google/common/collect/Multimaps,
have different Class objects for the type ap; com/google/common/base/Supplier;) com/google/common/collect/ListMultimap; used in signature
at org.jenkinsci.plugins.tokenmacro.Tokenizer.find(Tokenizer.java:109)
at org.jenkinsci.plugins.tokenmacro.TokenMacro.expand(TokenMacro.java:167)
at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:233)
at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:71)
at hudson.plugins.emailext.ExtendedEmailPublisher.setSubject(ExtendedEmailPublisher.java:659)
Run Code Online (Sandbox Code Playgroud)
问题:
可能有用的其他信息:
1.) 我也这么认为。
2.a(多个类加载器):像JBoss这样的应用程序容器中有特殊的类加载器。它们用于区分不同应用程序中的类。您应该能够在应用程序中使用类的任何版本,而独立于不同应用程序中使用的版本。
因此,如果两个类具有相同的名称但不同的类加载器,则它们被视为不同。
当两个应用程序“接触”或容器提供类时就会出现问题。我猜测问题出在 WebLogic 提供的 Guava 上。
另外,Jenkins本身就是一种应用程序容器,它必须隔离不同的插件,因此需要AntClassLoader2。
2b(类加载器委托):通常情况正好相反:总是询问父类加载器,如果它找不到该类,请尝试自己查找。但整个故事要复杂得多(要了解更多信息,请参阅https://tomcat.apache.org/tomcat-8.0-doc/class-loader-howto.html,也许 WebLogic 也有一些类似的文档)。
3)作为第一个猜测,我会检查WebLogic(根据您的实例配置)是否提供Guava。
4)我会尝试隔离问题并通过编写一个使用供应商的小型网络应用程序使其可重现。也许我会搜索并阅读有关 WebLogic 中如何处理类加载的文档。
| 归档时间: |
|
| 查看次数: |
731 次 |
| 最近记录: |