spring JdbcTemplate问题!!!急等!!

hersing 2013-05-30 07:08:51
我贴下测试类:
import org.springframework.jdbc.core.JdbcTemplate;

import dispatcher.service.DsServer;
import dispatcher.service.DsService;
import dispatcher.service.JobServer;
import dispatcher.service.JobService;

import dispatcher.pool.DBPool;

public class Test {

JdbcTemplate jdbcTemplate=(JdbcTemplate)DBPool.getBean("jdbcTemplate");

public static void main(String args) throws ParseException{
String message=test.doSpTest();
System.out.println(message);
}
public String doSpTest(){
String message=null;
JobService js=new JobServer();
DsService ds=new DsServer();
DPJob job=js.getJobByJobName("SP_JOB2");
List<Param> params=js.getParamByJobName(job.getJobNm());
DbServerVo dbVo =ds.getDbByJobName(job.getRunServer());
try {
AgentService agService=new AgentServiceImpl();
message=agService.DoSp(job, dbVo, params);
} catch (Exception e) {
e.printStackTrace();
}
return message;
}
}


下面是错误信息,我的spring配置文件里没有配置注入方式,只是用来获取数据库连接
Exception in thread "main" java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:826)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:283)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
at dispatcher.pool.DBPool.getBean(DBPool.java:33)
at dispatcher.service.DsServer.<init>(DsServer.java:26)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
at dispatcher.service.JobServer.<init>(JobServer.java:28)
at dispatcher.service.DsServer.<init>(DsServer.java:29)
...全文
311 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
桃园闲人 2013-06-02
  • 打赏
  • 举报
回复
引用 12 楼 dracularking 的回复:
[quote=引用 10 楼 peng_hao1988 的回复:] java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException 错误说的很清楚了,没有找到FatalBeanException这个类,你该是Jar的问题,Jar包不要东拼西凑的,去官方下载开发库,然后使用库里面提供的jar文件。
这两个据我观察应该是次第抛出的同质异常(严格说一个是Error,一个是Exception)[/quote] 谢谢指正!
dracularking 2013-05-31
  • 打赏
  • 举报
回复
引用 15 楼 hersing 的回复:
这中获取bean的方式是没有问题的,现在发现,如果不是用接口和实现类,把实现类中的方法全搬到测试类中,直接调用,是可以的。
你是说直接这样在测试类中调用 private static ApplicationContext ctx = new ClassPathXmlApplicationContext( "schedulingContext.xml"); ctx.getBean("jdbcTemplate"); 是没问题的?
dracularking 2013-05-31
  • 打赏
  • 举报
回复
引用 27 楼 hersing 的回复:
貌似是循环调用了,可能是我的JobServer中调用DsServer,而DsServer又调用JobServer,会是这种情况吗?
互相调用又怎么会和NoClassDefFoundError发生直接关系?
ZHOU西口 2013-05-31
  • 打赏
  • 举报
回复
引用 27 楼 hersing 的回复:
貌似是循环调用了,可能是我的JobServer中调用DsServer,而DsServer又调用JobServer,会是这种情况吗?
我觉得还是debug一下,看看到底是哪行引起的,因为这个异常可能有很多原因引起的。
hersing 2013-05-31
  • 打赏
  • 举报
回复
貌似是循环调用了,可能是我的JobServer中调用DsServer,而DsServer又调用JobServer,会是这种情况吗?
hersing 2013-05-31
  • 打赏
  • 举报
回复
引用 23 楼 splendid_java 的回复:
你用AutoWire了?
貌似不关这个的事吧。。我都不知道是啥东西,更谈不上用了。
ZHOU西口 2013-05-31
  • 打赏
  • 举报
回复
你用AutoWire了?
hersing 2013-05-31
  • 打赏
  • 举报
回复
jar:
hersing 2013-05-31
  • 打赏
  • 举报
回复
jar包:
hersing 2013-05-31
  • 打赏
  • 举报
回复
引用 10 楼 peng_hao1988 的回复:
java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException 错误说的很清楚了,没有找到FatalBeanException这个类,你该是Jar的问题,Jar包不要东拼西凑的,去官方下载开发库,然后使用库里面提供的jar文件。
应该不是jar包的问题,我在spring.jar里找到FatalBeanException这个类了。还有,如果是jar包的问题,应该我其余的方法是不可以运行的,但是有的方法还是可以的。就不知道这是啥情况了。。。
hersing 2013-05-31
  • 打赏
  • 举报
回复
引用 11 楼 dracularking 的回复:
JdbcTemplate jdbcTemplate=(JdbcTemplate)DBPool.getBean("jdbcTemplate"); 可能这种获取bean的方式有问题,就如楼上所说 也可能这个jdbcTemplate就没被正确配置为一个spring bean
这中获取bean的方式是没有问题的,现在发现,如果不是用接口和实现类,把实现类中的方法全搬到测试类中,直接调用,是可以的。
hersing 2013-05-31
  • 打赏
  • 举报
回复
引用 8 楼 splendid_java 的回复:
org.springframework.beans-3.0.2.RELEASE.jar org.springframework.expression-3.0.2.RELEASE.jar 有吗
前面的这个jar包有的,后面的这个没有,但是如果我不使用DsService ds=new DsServer();这中方式,把其中的方法全搬到一个测试类中去,执行是没有问题的。
hersing 2013-05-31
  • 打赏
  • 举报
回复
spring配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"><value>jdbc:oracle:thin:@10.196.30.10:1521:olids</value></property> <property name="username"><value>olidsdev</value></property> <property name="password"><value>olidsdev</value></property> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" singleton="false" > <property name="dataSource"><ref bean="dataSource" /></property> </bean> </beans> 至于DBPool就相当于我把读取spring配置文件放在这里面去了,这个类只是个单例. DBPool: public class DBPool { private ScheduledThreadPoolExecutor Pool = null; private IDbService DbService = null; private static ApplicationContext ctx = new ClassPathXmlApplicationContext( "schedulingContext.xml");// /** * @return the dbService */ public IDbService getDbService() { return DbService; } private DBPool() { Pool = new ScheduledThreadPoolExecutor(300); } public static Object getBean(String beanName){ return ctx.getBean(beanName); } private static DBPool instance = new DBPool(); public static DBPool geInstance() { return instance; } }
hersing 2013-05-31
  • 打赏
  • 举报
回复
引用 33 楼 dracularking 的回复:
[quote=引用 32 楼 hersing 的回复:] 没问题的。不是Bean实例化的问题
之前那个错是很明显从这里爆出来的 at dispatcher.pool.DBPool.getBean(DBPool.java:33) 现在已经没这个问题了?[/quote] 没问题的。DEBUG过程中,出错就是在这里 JobService js=new JobServer();DsService ds=new DsServer();问题是,我这里面只是些方法的实现,没啥别的东西。
dracularking 2013-05-31
  • 打赏
  • 举报
回复
引用 32 楼 hersing 的回复:
没问题的。不是Bean实例化的问题
之前那个错是很明显从这里爆出来的 at dispatcher.pool.DBPool.getBean(DBPool.java:33) 现在已经没这个问题了?
hersing 2013-05-31
  • 打赏
  • 举报
回复
引用 30 楼 dracularking 的回复:
[quote=引用 15 楼 hersing 的回复:] 这中获取bean的方式是没有问题的,现在发现,如果不是用接口和实现类,把实现类中的方法全搬到测试类中,直接调用,是可以的。
你是说直接这样在测试类中调用 private static ApplicationContext ctx = new ClassPathXmlApplicationContext( "schedulingContext.xml"); ctx.getBean("jdbcTemplate"); 是没问题的?[/quote] 没问题的。不是Bean实例化的问题
hersing 2013-05-31
  • 打赏
  • 举报
回复
引用 28 楼 splendid_java 的回复:
引用 27 楼 hersing 的回复:
貌似是循环调用了,可能是我的JobServer中调用DsServer,而DsServer又调用JobServer,会是这种情况吗?
我觉得还是debug一下,看看到底是哪行引起的,因为这个异常可能有很多原因引起的。
肯定Debug过,报错信息就是从JobService js=new JobServer();DsService ds=new DsServer();开始,不能实例化。
dracularking 2013-05-30
  • 打赏
  • 举报
回复
引用 10 楼 peng_hao1988 的回复:
java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException 错误说的很清楚了,没有找到FatalBeanException这个类,你该是Jar的问题,Jar包不要东拼西凑的,去官方下载开发库,然后使用库里面提供的jar文件。
这两个据我观察应该是次第抛出的同质异常(严格说一个是Error,一个是Exception)
dracularking 2013-05-30
  • 打赏
  • 举报
回复
JdbcTemplate jdbcTemplate=(JdbcTemplate)DBPool.getBean("jdbcTemplate"); 可能这种获取bean的方式有问题,就如楼上所说 也可能这个jdbcTemplate就没被正确配置为一个spring bean
桃园闲人 2013-05-30
  • 打赏
  • 举报
回复
java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException 错误说的很清楚了,没有找到FatalBeanException这个类,你该是Jar的问题,Jar包不要东拼西凑的,去官方下载开发库,然后使用库里面提供的jar文件。
加载更多回复(6)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧