In my webApp I bumped into following Exception while running JSPs which queries
database.
Platform : Windows NT 4, webLogic 5.1 with SP 8.
Action : WLSServer crashes with Dr. Watson application error.
I am using a custom Connect.java class ( through javax.sql.DataSource, as recommended
by WLS 5.1 docs ) to connect to Oracle database using JDBC thin client. If I do
not use webApp architecture then the same class works good to connect to DB.
Also, if I maintain identical class hierachy into my weblogic.class.path classpath
settings I do not get this exception and everything works fine.
I read into this search group messages about Linkage problems caused because of
having duplicate classes available to the server at runtime and so I ensured that
I do not keep classpaths which can cause duplicate classes into runtime environment
of wlsserver but still the same problem persists.
any help is appreciated,
thanks,
- Rajesh.
------------------
Mon Apr 02 16:19:11 PDT 2001:<I> <WebAppServletContext-eTools> Generated java
file: c:\project\etools\WEB-INF\_tmp_war_eTools\jsp_servlet\_jsp\_xyz.java
Mon Apr 02 16:19:13 PDT 2001:<E> <WebAppServletContext-eTools> Servlet failed
with Exception
java.lang.LinkageError: Class java/sql/Connection violates loader constraints
at weblogic.jdbc20.common.internal.RmiDataSource.getConnection(RmiDataSource.java:53)
at weblogic.jdbc20.common.internal.RmiDataSource_ServiceStub.getConnection(RmiDataSource_ServiceStub.java,
Compiled Code)
at com.bea.etools.common.Connect.getConnection(Connect.java:51)
at jsp_servlet._jsp._xyz._jspService(_xyz.java, Compiled Code)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:106)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:907)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:851)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:252)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:364)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:252)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled Code)
I tried to tweak through the above weblogic classes dirs and I did not find anything
similar to below classes for which the I got Linkage error.
question is why would weblogic look for weblogic.jdbc20.common.internal.RmiDataSource.getConnection
( (this class resides in c:\weblogic452\classes dir and not in c:\weblogic452\classes\boot
which is there in system classpath)of /weblogic452 directory when I am not even
booting up 4.5.2 instance of the server.
>java.lang.LinkageError: Class java/sql/Connection violates loader constraints
> at >weblogic.jdbc20.common.internal.RmiDataSource.getConnection(RmiDataSource.java:53)
thanks,
Rajesh.