我自认为服务器启动没有问题,说明它已经成功加载了applicationContext.xml这个文件啊!!那怎么用不了spring注入的属性了。
我不用那个注入的属性,自己new的话没有问题;还有在Dao层中我一加这句getHibernateTemplate().find("from Jobs");它也报NullPointerException;
applicationContext.xml代码::
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://localhost:1433/pubs</value>
</property>
<property name="username">
<value>login</value>
</property>
<property name="password">
<value>4255095</value>
</property>
<!-- 将数据源注入到Session工厂 -->
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<value>cn/com/conpress/pojo/Jobs.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- 把Dao注入给session工厂 -->
<bean id="jobsdao" class="cn.com.corepress.daoImpl.DaoJobsImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 把Service注入dao -->
<bean id="jobsservice" class="cn.com.conpress.serviceImpl.ServiceJobsImpl">
<property name="jobsdao">
<ref bean="jobsdao"/>
</property>
</bean>
<!-- 把Action注入service -->
<bean name="login" class="cn.com.conpress.action.ActionJobs" scope="prototype">
<property name="jobsservice">
<ref bean="jobsservice"/>
</property>
</bean>
<!--
<bean name="/login" class="com.dream.struts.action.LoginAction"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="userService">
<ref bean="userServiceImpl" />
</property>
</bean>
-->
</beans>
action 类中代码:
package cn.com.conpress.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import cn.com.conpress.pojo.Jobs;
import cn.com.conpress.service.ServiceJobs;
import cn.com.conpress.serviceImpl.ServiceJobsImpl;
import cn.com.corepress.daoImpl.DaoJobsImpl;import com.opensymphony.xwork2.ActionSupport;public class ActionJobs extends ActionSupport { private ServiceJobs jobsservice;
public ServiceJobs getJobsservice() {
return jobsservice;
} public void setJobsservice(ServiceJobs jobsservice) {
this.jobsservice = jobsservice;
}
private static final long serialVersionUID = 1L;
public String sshGetAllJobs() throws Exception {
ServiceJobs jobsservice = new ServiceJobsImpl();
HttpServletRequest request = ServletActionContext.getRequest();
DaoJobsImpl jj = new DaoJobsImpl();
List<Jobs> jobsList = jj.getAllJobs();
request.setAttribute("list1", jobsList);
// request.setAttribute("list", "<font color='red' size='3'>hello world!!!</font>");
System.out.println("------------dd---------------");
return "success";
}
}
我不用那个注入的属性,自己new的话没有问题;还有在Dao层中我一加这句getHibernateTemplate().find("from Jobs");它也报NullPointerException;
applicationContext.xml代码::
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://localhost:1433/pubs</value>
</property>
<property name="username">
<value>login</value>
</property>
<property name="password">
<value>4255095</value>
</property>
<!-- 将数据源注入到Session工厂 -->
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<value>cn/com/conpress/pojo/Jobs.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- 把Dao注入给session工厂 -->
<bean id="jobsdao" class="cn.com.corepress.daoImpl.DaoJobsImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 把Service注入dao -->
<bean id="jobsservice" class="cn.com.conpress.serviceImpl.ServiceJobsImpl">
<property name="jobsdao">
<ref bean="jobsdao"/>
</property>
</bean>
<!-- 把Action注入service -->
<bean name="login" class="cn.com.conpress.action.ActionJobs" scope="prototype">
<property name="jobsservice">
<ref bean="jobsservice"/>
</property>
</bean>
<!--
<bean name="/login" class="com.dream.struts.action.LoginAction"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="userService">
<ref bean="userServiceImpl" />
</property>
</bean>
-->
</beans>
action 类中代码:
package cn.com.conpress.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import cn.com.conpress.pojo.Jobs;
import cn.com.conpress.service.ServiceJobs;
import cn.com.conpress.serviceImpl.ServiceJobsImpl;
import cn.com.corepress.daoImpl.DaoJobsImpl;import com.opensymphony.xwork2.ActionSupport;public class ActionJobs extends ActionSupport { private ServiceJobs jobsservice;
public ServiceJobs getJobsservice() {
return jobsservice;
} public void setJobsservice(ServiceJobs jobsservice) {
this.jobsservice = jobsservice;
}
private static final long serialVersionUID = 1L;
public String sshGetAllJobs() throws Exception {
ServiceJobs jobsservice = new ServiceJobsImpl();
HttpServletRequest request = ServletActionContext.getRequest();
DaoJobsImpl jj = new DaoJobsImpl();
List<Jobs> jobsList = jj.getAllJobs();
request.setAttribute("list1", jobsList);
// request.setAttribute("list", "<font color='red' size='3'>hello world!!!</font>");
System.out.println("------------dd---------------");
return "success";
}
}
那为什么还要ServiceJobs jobsservice = new ServiceJobsImpl(); ???这么写了还用spring干嘛?
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mircosoft.sqlserver.jdbc.SQLServiceDervice">
</property>
<property name="url" value="jdbc:sqlservice://localhost:10433;databasename=pubs"></property>
<property name="username" value="login"> </property>
<property name="password" value="4255095"></property>
<!-- 将数据源注入到Session工厂 -->
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mappingResources">
<list>
<value>cn/com/conpress/pojo/Jobs.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- 把Dao注入给session工厂 -->
<bean id="jobsdao" class="cn.com.corepress.daoImpl.DaoJobsImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 把Service注入dao -->
<bean id="jobsservice" class="cn.com.conpress.serviceImpl.ServiceJobsImpl">
<property name="jobsdao">
<ref bean="jobsdao"/>
</property>
</bean>
<!-- 把Action注入service -->
<bean name="login" class="cn.com.conpress.action.ActionJobs" scope="prototype">
<property name="jobsservice">
<ref bean="jobsservice"/>
</property>
</bean>
给你重新整理了一下,
<property name="mappingResources">
<list>
<value>cn/com/conpress/pojo/Jobs.hbm.xml</value>
</list>
</property>
这个要加list