Guava和Weblogic:ClassNotFoundException

Jas*_*son 1 java weblogic maven guava

我正在尝试部署到Weblogic 10.3.5的Web应用程序.其中一个maven依赖项是Guava.

不幸的是,在尝试发布项目时,weblogic抛出了这个异常:

java.lang.ClassNotFoundException: com.google.common.eventbus.EventBus
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
Run Code Online (Sandbox Code Playgroud)

其余的maven依赖项SEEM正在运行,但我不确定问题是什么.

有人可以协助排除故障吗?环境是带有M2E插件的Eclipse,Weblogic Server已集成到Eclipse中.

更新:pom.xml中的番石榴条目:

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>11.0.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我包括另一个图书馆(commons-lang),它工作得很好.

更新2:这可能是一个类加载器问题.我从这个博客得到了一个线索:http://blog.eisele.net/2011/12/running-richfaces-410final-on-weblogic.html.似乎WLS使用了一些google-commons库.

我试图通过在weblogic.xml文件中进行更改来强制它使用我的版本,但它似乎不起作用.

Cas*_*sey 11

  • 是的,它是类加载器问题(应用程序与WebLogic类加载)
  • guava库并com.google.common包含相同的类
  • WebLogic 在模块目录中具有com.google.common_1.0.0.0_0-6.jarcom.google.common_1.1.0.0_0-6.jar位于其类路径中.(取决于WebLogic版本,但jar内容相同,只有META-INF\MANIFEST.MF不同)
  • 您无法在WebLogic 类加载器分析工具(CAT)中找到此库.我不知道为什么......
  • 为什么不在FilteringClassLoaders的帮助下使用WebLogic内置功能 - prefer-application-packages

你需要像这样添加到您weblogic.xml或者weblogic-application.xml如果你是在EAR应用程序

<wls:container-descriptor>
    <wls:prefer-application-packages>
            <wls:package-name>com.google.common.*</wls:package-name>
    </wls:prefer-application-packages>
</wls:container-descriptor>
Run Code Online (Sandbox Code Playgroud)

然后重新部署应用程序.

它对我们有用.

  • 专业人士:无需用com.google.common*.jar文件替换和重命名魔法 ......这是一种自杀方式......

希望能帮助到你.

有关详细信息,请参阅链接:http:
//www.lucubratory.eu/guava-and-weblogic12c/

  • 我有类似的问题,并希望使这项工作.问题是我不知道要添加哪个xml.我正在使用weblogic 12c我尝试将其添加到基本xml,临时域xml,以及在我的项目的WEB-INF中创建一个新的xml.前2个没有用.最后一个dtd强制执行表明prefer-application-packages无效. (2认同)