各位好,现在很郁闷,请各位帮帮忙呢。
我在java类中测试:
ApplicationContext context;
System.out.println("Initalizing application");
context=new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("Getting testDao");
UserDAO2 testDao=(UserDAO2)context.getBean("userDAO2");
TUser user = testDao.getUserByUsername("xuetao");
System.out.println(user.getSex());测试通过。
在页面上调用:
UserDAO2 userDAO2=new UserDAO2();
TUser user = userDAO2.getUserByUsername("xuetao");
System.out.println(user.getSex()); 但是在页面上报错:
java.lang.IllegalArgumentException: No SqlMapClient specified
org.springframework.util.Assert.notNull(Assert.java:90)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:155)
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:222) ,好像是类中的 sqlMapClient 没有映射上呢。
谢谢帮忙出出主意。
我在java类中测试:
ApplicationContext context;
System.out.println("Initalizing application");
context=new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("Getting testDao");
UserDAO2 testDao=(UserDAO2)context.getBean("userDAO2");
TUser user = testDao.getUserByUsername("xuetao");
System.out.println(user.getSex());测试通过。
在页面上调用:
UserDAO2 userDAO2=new UserDAO2();
TUser user = userDAO2.getUserByUsername("xuetao");
System.out.println(user.getSex()); 但是在页面上报错:
java.lang.IllegalArgumentException: No SqlMapClient specified
org.springframework.util.Assert.notNull(Assert.java:90)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:155)
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:222) ,好像是类中的 sqlMapClient 没有映射上呢。
谢谢帮忙出出主意。
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- DataSource -->
<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:@127.0.0.1:1521:EOS</value>
</property>
<property name="username">
<value>yccrm</value>
</property>
<property name="password">
<value>admin</value>
</property>
</bean>
<!-- Spring iBatis SqlMapClient -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sqlmap-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- Spring iBatisTemplate -->
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="sqlMapClient"/>
</property>
</bean>
<!-- UserDAO方案er -->
<bean id="userDAO2" class="org.xuetao.webservice.dao.UserDAO2">
<property name="sqlMapClient">
<ref bean="sqlMapClient"/>
</property>
</bean></beans>
java调用类:public class UserDAO2 extends SqlMapClientDaoSupport{
public TUser getUserByUsername(String username){
try {
return (TUser) super.getSqlMapClient().queryForObject("getUserbyUsername", username);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
//return (TUser) getSqlMapClientTemplate().queryForObject("getUserbyUsername", username);
}
}在jsp是这样调用的:
UserDAO2 userDAO2=new UserDAO2();
TUser user = userDAO2.getUserByUsername("xuetao");
System.out.println(user.getSex());
报错在上面帮忙看看呢
要调也不能直接new出来,因为new出来的没有注入sqlMapClient
所有你的dao对象要从spring容器出去取.
各位是我不是我又错了呢