I am trying to access a WL 8.1 JDBC data source, using the Oracle thin driver
for an Oracle 9i database. I have ojdbc14.jar and weblogic.jar in my client classpath;
I've also tried putting ojdbc14.jar explicitly in the server classpath. The client
gets the data source using JNDI with no problem, but then when it executes getConnection
it gets a java.lang.NoClassDefFoundError (stack trace below).
This sounds similar to the problem someone else had recently with 7.0, except
that adding the Oracle JDBC to the client classpath doesn't seem to fix it. Btw,
oracle.sql.BfileDBAccess is definitely in ojdbc14.jar on both the client and the
server.
Monica
java.lang.NoClassDefFoundError: oracle/sql/BfileDBAccess
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:1627)
at java.lang.Class.privateGetPublicMethods(Class.java:1655)
at java.lang.Class.privateGetPublicMethods(Class.java:1665)
at java.lang.Class.getMethods(Class.java:815)
at weblogic.rmi.utils.Utilities.getRemoteMethods(Utilities.java:269)
at weblogic.rmi.internal.StubGenerator.<init>(StubGenerator.java:90)
at weblogic.rmi.internal.StubGenerator.<init>(StubGenerator.java:68)
at weblogic.rmi.internal.StubGenerator.getStubOnClient(StubGenerator.java:689)
at weblogic.rmi.internal.StubGenerator.getStubClass(StubGenerator.java:666)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:712)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:699)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:76)
at weblogic.rmi.utils.io.RemoteObjectReplacer.resolveObject(RemoteObjectReplacer.java:222)
at weblogic.rmi.internal.StubInfo.readResolve(StubInfo.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:911)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1655)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:111)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:95)
at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:159)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:126)
at weblogic.jdbc.common.internal.RmiDataSource_810_WLStub.getConnection(Unknown
Source)
at com.callsource.util.DBConnect.getConnection(DBConnect.java:37)
at com.callsource.provisioning.persistence.customer.CustomerPersister.getCompanyByID(CustomerPersister.java:28)
at com.callsource.provisioning.persistence.customer.CustomerPersister.getCustomerByID(CustomerPersister.java:74)
at com.callsource.provisioning.persistence.customer.CustomerPersister.getCSCustomerByID(CustomerPersister.java:127)
at com.callsource.provisioning.persistence.customer.CustomerHome.getCSCustomerByID(CustomerHome.java:27)
at com.callsource.provisioning.session.TestUserSessionBean.setUp(TestUserSessionBean.java:30)
at junit.framework.TestCase.runBare(TestCase.java:125)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at com.borland.jbuilder.unittest.JBTestRunner.run(JBTestRunner.java:206)
at com.borland.jbuilder.unittest.JBTestRunner.initiateTest(JBTestRunner.java:248)
at com.borland.jbuilder.unittest.JBTestRunner.main(JBTestRunner.java:554)
2)Make sure you add your JDBC drivers to the beginning of CLASSPATH in either setDomainenv.cmd or setEnv.cmd
3)What really helped was BEA support and playing with BEA's JDBC example that shows how to create and deploy and use a data source.