我正在使用使用以下技术的应用程序:Java,EJB 3,JPA,Websphere和Oracle。我们根本不使用derby,但是,当我尝试将耳朵部署到Websphere时,它总是给我以下错误:
引起原因:java.lang.NoClassDefFoundError:org.apache.derby.jdbc.EmbeddedDriver(初始化失败)(位于java.lang.J9VMInternals.initialize(J9VMInternals.java:140)位于org.apache.derby.jdbc.EmbeddedDataSource.findDriver( org.apache.derby.jdbc.EmbeddedDataSource.getConnection上的未知源)(org.apache.derby.jdbc.EmbeddedXADataSource.setupResourceAdapter(未知源)上org.apache.derby.jdbc.EmbeddedDataSource.getConnection(未知源)处),位于com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper $ 1.run(InternalGenericDataStoreHelper.java:1221)的org.apache.derby.jdbc.EmbeddedXADataSource.getXAConnection(未知源)。 com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledConnection(InternalGenericDataStoreHelper.java)上的AccessController.doPrivileged(AccessController.java:118):1258),位于com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:2308),位于com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:1598),位于com.ibm.ejs .j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:2034)位于com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1711)位于com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2471) ),位于com.ibm.ws.rsadapter.jdbc的com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:696)的com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1059)处。 com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:635)上的WSJdbcDataSource.getConnection(WSJdbcDataSource.java:668)com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl $ DSWrappercom.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.getConnection(DatabaseHelperImpl.java:746)上的com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.getConnection(DatabaseHelperImpl。 java:1354)com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.connect(DatabaseHelperImpl.java:544)at com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.initialize(DatabaseHelperImpl.java:497) ... 75更多原因:java.lang.SecurityException:违反密封:包org.apache.derby.impl.store.raw.data在java.net.URLClassLoader.defineClass(URLClassLoader.java:487)处被密封.net.URLClassLoader.defineClass(URLClassLoader.java:451)at java.net.URLClassLoader.access $ 300(URLClassLoader.java:79)at java.net.URLClassLoader $ ClassFinder.run(URLClassLoader.java:1034)at java.security .AccessController。java.net.URLClassLoader.findClass(URLClassLoader.java:429)的doPrivileged(AccessController.java:284)com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:150)的java.lang.ClassLoader.loadClass (ClassLoader.java:653)在com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:90)在java.lang.ClassLoader.loadClass(ClassLoader.java:619)在java.lang.ClassLoader.defineClassImpl( java.net.URLClassLoader.defineClass(URLClassLoader.java:540)上java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69)上java.lang.ClassLoader.defineClass(ClassLoader.java:275)上的Native方法) .net.URLClassLoader.defineClass(URLClassLoader.java:451)at java.net.URLClassLoader.access $ 300(URLClassLoader.java:79)at java.net.URLClassLoader $ ClassFinder.run(URLClassLoader.java:1034)at java.security .AccessController。java.net.URLClassLoader.findClass(URLClassLoader.java:429)的doPrivileged(AccessController.java:284)com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:150)的java.lang.ClassLoader.loadClass (ClassLoader.java:653)在com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:90)在java.lang.ClassLoader.loadClass(ClassLoader.java:619)在java.lang.Class.forNameImpl( org.apache.derby.impl.services.monitor.BaseMonitor.getImplementations(Unknown Source)的java.lang.Class.forName(Class.java:139)上的org.apache.derby.impl.services.monitor org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(Unknown Source)的org.apache.derby.impl.services.monitor.FileMonitor.org的.BaseMonitor.getDefaultImplementations(未知源)org.org的org.apache.derby.impl.services.monitor.FileMonitor。(未知源)的。 apache.derby.iapi.services.monitor.Monitor。在org.apache.derby.iapi.jdbc.JDBCBoot.boot(在org.apache.derby.jdbc.EmbeddedDriver上的startMonitor(未知源)。在org.apache.derby.jdbc.EmbeddedDriver上的boot(未知源)。 (未知源)在java.lang.Class.forNameImpl(本机方法)在java.lang.Class.forNameImpl(本机方法)在java.lang.J9VMInternals.initializeImpl(本机方法)在java.lang.J9VMInternals.initializeImpl(本机方法)在java.lang.Class。 com.ibm.ws.runtime.component.EJBContainerImpl.timerDBExists(EJBContainerImpl.java:2091)的forName(Class.java:172)at com.ibm.ws.runtime.component.EJBContainerImpl.startModule(EJBContainerImpl.java:2550)的forName(Class.java:172) ...另外67个com.ibm.ws.runtime.component处的java.lang.Class.forNameImpl(本机方法)处的lang.J9VMInternals.initialize(J9VMInternals.java:200)。 com.ibm.ws.runtime.component.EJBContainerImpl.startModule(EJBContainerImpl.java:2550)的EJBContainerImpl.timerDBExists(EJBContainerImpl.java:2091)... 67更多com.ibm.ws.runtime.component处的java.lang.Class.forNameImpl(本机方法)处的lang.J9VMInternals.initialize(J9VMInternals.java:200)。 com.ibm.ws.runtime.component.EJBContainerImpl.startModule(EJBContainerImpl.java:2550)的EJBContainerImpl.timerDBExists(EJBContainerImpl.java:2091)... 67更多
顺便说一句,我的jdbcprovider和数据源已正确配置。我只是不了解我的应用程序与derby之间的关系。
有任何想法吗?任何帮助将不胜感激!
IBM Websphere使用Derby作为内部数据库。尝试重新启动服务器,并在启动时检查服务器日志。您很有可能遇到服务器配置问题,并且您的应用程序正常。顺便说一句,您是否尝试过在该服务器上部署其他应用程序?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句