做练习,在SSH框架下面想做一个简单的junit测试可是一直出现下面的错误org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in URL [file:WebRoot/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL
...
(ClassPathXmlApplicationContext.java:83)
Caused by: java.lang.NoSuchFieldError: NULL
...测试类public class UserDAOImplTest {  
private BeanFactory beanFactory;  
    private PmisUserDAO puDao;  
    @Before  
    public void getDao() {  
            //这个要根据需要进行修改,在classes路径中去寻找配置文件。  
        beanFactory = new ClassPathXmlApplicationContext("file:WebRoot/WEB-INF/applicationContext.xml");  
        puDao= (PmisUserDAO ) beanFactory.getBean("PmisUserDAO");  
          
    }   @Test  
    public void getDaoTest(){  
List x = puDao.findByLoginid("liuzr");
System.out.print(x.get(0));
    }  
} 相关配置<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@172.19.4.37:1521:ldns">
</property>
<property name="username" value="ioffice"></property>
<property name="password" value="Ioffice1"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/qam/dao/Test.hbm.xml</value>
<value>com/qam/dao/PmisUser.hbm.xml</value>
<value>com/qam/dao/PrjProject.hbm.xml</value>
<value>com/qam/dao/TerHistory.hbm.xml</value>
<value>com/qam/dao/TerContact.hbm.xml</value>
<value>com/qam/dao/Qatest.hbm.xml</value>
</list>
</property></bean>
.........
.........
<bean id="PmisUserDAO" class="com.qam.dao.PmisUserDAO">
  <property name="sessionFactory">
  <ref bean="sessionFactory" />
  </property>
  </bean>
......有没有大神遇到一样的问题。求帮助。。

解决方案 »

  1.   

    看到有人遇到一样的问题,是因为jdni没有通过tomcat启动而无法获取,请问这里spring应该如何配置
      

  2.   

    把:file:WebRoot/WEB-INF/applicationContext.xml
    换成绝对路径 试试吧。
      

  3.   

            private static TraderDao traderDao;
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
    ApplicationContext context = null;
    try {
    context = new ClassPathXmlApplicationContext(
    "beans.xml");
    traderDao = (TraderDao) context.getBean("traderDaoImpl");
    } catch (RuntimeException e) {
    e.printStackTrace();

    }       在SSH下 这是我的测试。