Reputation: 4130
I'm trying to work on a web application that deploys to Weblogic 10.3.5. One of the maven dependencies is Guava.
Unfortunately, upon attempting to publish the project, weblogic throws this exception:
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)
The rest of my maven dependencies SEEM to be working, but I'm unsure what the problem is.
Can anyone assist in troubleshooting? Environment is Eclipse with M2E plugin, Weblogic Server is integrated into Eclipse.
Update: Guava entry in pom.xml:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>11.0.2</version>
</dependency>
I included another library (commons-lang) and it worked fine.
Update 2: This may be a classloader issue. I got a clue from this blog: http://blog.eisele.net/2011/12/running-richfaces-410final-on-weblogic.html. It seems WLS uses some google-commons library.
I'm trying to force it to use my version by making changes in the weblogic.xml file, but it doesn't seem to be working.
Upvotes: 3
Views: 4343
Reputation: 1422
guava
libraries and com.google.common
contains same classescom.google.common_1.0.0.0_0-6.jar
or com.google.common_1.1.0.0_0-6.jar
in it's classpath, in modules directory. (depending on WebLogic version, but the jar content is same, only META-INF\MANIFEST.MF is different)you need to add something like this to your weblogic.xml
or weblogic-application.xml
if you are in EAR application
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>com.google.common.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
Then redeploy the application.
It works for us.
Hope it helps.
For more info, see the link:
https://www.rational-pi.be/2013/03/guava-and-weblogic12c/
Upvotes: 12
Reputation: 2737
Go to your weblogic folder, weblogic-home >modules and if there is a com.google.common....jar file, just delete it and replace it with a guava.jar file, and you have to rename the guava file with the old com.google.common......jar name (cuz weblogic is looking for this name, but its conflicting with your guava file).
i had the same problem here
Upvotes: 3