今天搭了个spring的环境,连接数据库,出现了一个问题:
Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in file [D:\workspace\extjs\SpringTest001\src\beans.xml]: problem with class file or dependent class; nested exception is java.lang.UnsupportedClassVersionError: Bad version number in .class file
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1253)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1319)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:885)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)
at com.spring.test.FactoryTest4.main(FactoryTest4.java:10)
Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1271)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1242)
... 9 more看得出来,似乎是版本的问题。然后我调整了各个地方的版本:但是就是不管用,依然报这个错。
我用的spring的版本是2.5,项目涉及的其他的jar包有:
commons-dbcp-1.4.jar
commons-logging-1.1.1.jar
commons-pool-1.5.5.jar
junit-4.8.1.jar
ojdbc14.jar把spring2.5换成了3,问题依旧存在。
附上我的配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@192.168.100.114:1521:oradb"/>
<property name="username" value="netpaydbuser"/>
<property name="password" value="netpaydbuser"/>
</bean>还有代码:import javax.sql.DataSource;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;public class FactoryTest4 {
public static void main(String[] args) throws Exception {
ApplicationContext context = new FileSystemXmlApplicationContext(
"/src/beans.xml");
DataSource ds = (DataSource) context.getBean("dataSource");
java.sql.Connection conn = ds.getConnection();
java.sql.Statement stmt = conn.createStatement();
java.sql.ResultSet rs = stmt
.executeQuery("select * from tbl_batch_instcode_mapping");
while (rs.next()) {
System.out.println(rs.getString("INST_NAME"));
}
rs.close();
stmt.close();
conn.close();
}
}
实在没办法了,换了个数据源的配置,用spring的数据源: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@192.168.100.114:1521:oradb"/>
<property name="username" value="netpaydbuser"/>
<property name="password" value="netpaydbuser"/>
</bean>
然后就***好了。求大神指导,第一种数据源的配置有什么问题?数据库spring数据源配置

解决方案 »

  1.   

    jdk版本跟第一种配置的数据源的jar包冲突了?
      

  2.   

    第一个图就是tomcat的JDK配置呀,改成1.5的了。
      

  3.   

    problem with class file or dependent class; nested exception is java.lang.UnsupportedClassVersionError
    ----------------
    你这个数据源的class文件编译的jdk的版本比你应用服务器上的jdk的版本要高造成的,比如class文件是从jdk1.7编译出来的class,放到jdk1.6的应用服务器上就会报这个错