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
guava库并com.google.common包含相同的类com.google.common_1.0.0.0_0-6.jar或com.google.common_1.1.0.0_0-6.jar位于其类路径中.(取决于WebLogic版本,但jar内容相同,只有META-INF\MANIFEST.MF不同)你需要像这样添加到您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)
然后重新部署应用程序.
它对我们有用.
希望能帮助到你.
有关详细信息,请参阅链接:http:
//www.lucubratory.eu/guava-and-weblogic12c/