Heres some problems I encountered trying to run some applications using Weblogic.
1/
java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus
I was banging my head against a wall with a
Exception in thread "Main Thread" java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus
While trying to write a simple standalone program to connect to a Weblogic instance via JNDI, and manipulate some JMX values. The solution was provided via this posting
http://blogs.oracle.com/jamesbayer/2008/08/workshop_for_weblogic_103_jee.html
To actually run the Main method class in Workshop, I right click on the class in the Project Explorer and select Run As->Open Run Dialog. In the classpath tab, be sure to add the wlclient.jar file located here
There is also a wlFullCLient.jar file that may be useful in other scenarios
2/
Just when you thought it was safe however, you get the following
ClassCastException: weblogic.jdbc.common.internal.ConnectionEnv
Here http://forums.oracle.com/forums/thread.jspa?threadID=1048084&tstart=118
the advice is as follows
I would suggest you to remove the wlClient.jar from the classpath.
Also make sure that there are no other jar files related to weblogic in the classpath.
Add weblogic.jar in the classpath and make sure that this weblogic.jar is the same jar that is in the weblogic server classpath.
This happens because of the difference in the jar used by the Client JVM and server JVM.
In fairness this does fix the problem.
Depending on what your client does, it may be necessary to include the Weblogic.jar (if its doing some funky stuff), to ensure it has all the correct classes. Be careful from oracle workshop (eclipse) however of attached bootstrap class loaders.
3/ Missing servlet jars/ JEE standard jars.
You may run into problems with missing J2EE standard jars. I for example was getting errors about HttpServletRequest etc from the Servlet Api. In previous versions of weblogic, the weblogic.jar file would contian all of these, but since 10.3.x they have stopped including it.
When looking up missing jars, try the following, check the following...
$WL_HOME/server/lib/api.jar
In there the MANIFEST.MF contains a list of jars that include the usual J2EE jars etc. These have been removed from Weblogic.jar so may be needed.
Finally... I've mentioned this before but it is important when working with Ears and Wars on weblogic.
If you start seeing exceptions such as
java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory
deep in the Weblogic code, you have more than likely run into a dreaded classpath incompatibility.
To avoid this use the following in your weblogic.xml
<wls:container-descriptor>
<wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>
This will then result in a lot of ClassNotFoudn exceptions which may mean a hunt through your libs to add missing files
For instance heres the issues I ran into
java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory
This means that we need a newer version of the SAXParserFactory than provided by Weblogic (we are using Bea jdk 1.6, so thast is picking up the lastest version of javax.xml.parsers.SAXParserFactory, but then weblogic.xml.jaxp.RegistrySAXParserFactory is been instantiated and this refers to an older version of SAXParserFactory)
The problem in my case was un-resolvable. The incompatible jar was needed to perform translation of a binary Xml format, but unfortunately it also included a newer version of xmlparser. This newer version then started causing problems with taglibs in Jsps. Our fix was to move of deployment from 10.3.1 to 10.3.3
After trawling the web there are a lot of references to wlFullClient.jar
This refers to rolling your own version of all wl client jars.
What might be simpler is to simply add the required jars.
This is the list of client jars.
webserviceclient+ssl.jar
webserviceclient.jar
wl-j2ee-client.jar
wlclient.jar
wljmsclient.jar
wljmxclient.jar
wlnmclient.jar
wlsafclient.jar
wlstestclient.ear
wseeclient.jar
For NestedException the required jar is wljmsclient.jar
No comments:
Post a Comment