Struts+Spring+Hibernate注入的时候报空指针

wanglu271991027 2011-04-14 10:39:56
ApplicationContext 文件
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="net.sourceforge.jtds.jdbc.Driver">
</property>
<property name="url"
value="jdbc:jtds:sqlserver://192.168.3.2:1433;DatabaseName=yhoa">
</property>
<property name="username" value="sa"></property>
<property name="password" value="sa"></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.SybaseDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>
com/ziboyanhua/oa/user/data/Yhuser.hbm.xml
</value></list>
</property></bean>
<bean id="yhuserDAO"
class="com.ziboyanhua.oa.user.data.YhuserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>


<bean id="UserService"
class="com.ziboyanhua.oa.user.service.UserService" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="yhuserDAO">
<ref bean="yhuserDAO" />
</property>
</bean>

YhuserDAO 是生动自成的
Yhuser.hbm.xml也是自动生成

UserService

public class UserService {
public YhuserDAO yhuserDAO;


public YhuserDAO getYhuserDAO() {
return yhuserDAO;
}

public void setYhuserDAO(YhuserDAO yhuserDAO) {
this.yhuserDAO = yhuserDAO;
}

public void inste(){
System.out.println(yhuserDAO);
Yhuser yhuser=new Yhuser();
yhuser.setUsername("wangx");
yhuser.setPasswrod("123");
yhuserDAO.save(yhuser);
}

public static void main(String[] args) {
UserService user=new UserService();
user.inste();



}
}


Exception in thread "main" java.lang.NullPointerException
at com.ziboyanhua.oa.user.service.UserService.inste(UserService.java:24)
at com.ziboyanhua.oa.user.service.UserService.main(UserService.java:29)


...全文
233 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chkaka 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hzw2312 的回复:]

Java code

public static void main(String[] args) {
UserService user=new UserService();
user.inste();


LZ用了Spring、业务层也注入了、为什么test类中还要用new呢?
你要加载Spring配置文件、然后getBean()这样!!!
Java code

Appli……
[/Quote]
wanglu271991027 2011-04-26
  • 打赏
  • 举报
回复
非常感谢大家
romanitc 2011-04-14
  • 打赏
  • 举报
回复
如果用了Spring IOC的话就是用new了,直接在上面写一个private UserService userService就可以用了。祝楼主好运!
wang_huanming 2011-04-14
  • 打赏
  • 举报
回复
ApplicationContext app = new ClassPathXmlApplicationContex("ApplicationContext.xml");
UserService user= (UserService)app.getBean("UserService");
wang_huanming 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hzw2312 的回复:]
Java code

public static void main(String[] args) {
UserService user=new UserService();
user.inste();


LZ用了Spring、业务层也注入了、为什么test类中还要用new呢?
你要加载Spring配置文件、然后getBean()这样!!!

Java code
……
[/Quote]

是的,使用Sprin如果在用new的话,那肯定是空值啊
xinlan1022 2011-04-14
  • 打赏
  • 举报
回复
先理解一下IOC吧
a312983516 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ylz2007 的回复:]
UserService user=new UserService();

你这样是获取不到注入的yhuserDAO的,当然报空指针异常了;看看这个吧:

http://blog.csdn.net/xkyle/archive/2008/05/16/2453074.aspx
[/Quote]

+1 LZ果断新手一个 慢慢揣摩吧
  • 打赏
  • 举报
回复
UserService user=new UserService();

你这样是获取不到注入的yhuserDAO的,当然报空指针异常了;看看这个吧:

http://blog.csdn.net/xkyle/archive/2008/05/16/2453074.aspx
BUG胡汉三 2011-04-14
  • 打赏
  • 举报
回复

public static void main(String[] args) {
UserService user=new UserService();
user.inste();

LZ用了Spring、业务层也注入了、为什么test类中还要用new呢?
你要加载Spring配置文件、然后getBean()这样!!!

ApplicationContext app = new ClassPathXmlApplicationContext("你Spring配置文件的位置");
UserService user= (UserService)app.getBean("Spring配置文件中该bean的Id");
  • 打赏
  • 举报
回复
仔细检查配置文件的路径,名字。
rubycon 2011-04-14
  • 打赏
  • 举报
回复
检查 配置文件中 的名字是否写错
和 getXXX的名字是否写错

67,512

社区成员

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

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