请教SSH中 nullpointerexception

先生有火吗 2012-04-15 04:53:40
我是照着21天学通java web的第二十一章抄的,不过做的时候却出现了错误:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
com.javaweb.action.ShowAllAction.execute(ShowAllAction.java:22)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknow
...

我的ShowAllAction.java文件内容如下:

public class ShowAllAction extends ActionSupport {
private UserService userService;

public UserService getUserService() {
return userService;
}

public void setUserService(UserService userService) {
this.userService = userService;
}

public String execute() throws Exception {
List all = userService.queryAllUser();//就是它出错啦,通过junit测试能够通过,在这里却不行[/color]
// 将用户list存储在request范围内
ServletActionContext.getRequest().setAttribute("all", all);
return SUCCESS;
}
}

好像execute中第一句:List all = userService.queryAllUser();运行不通过,因为我把它删除了之后就可以了
但是我使用JUNIT测试时这一句却能够得出数据库中的数据,所以请各位大侠帮下忙,不胜感激!

附:
web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.ui.theme" value="simple"></constant>
<package name="javaweb" namespace="/javaweb" extends="struts-default">
<action name="showAll" class="com.javaweb.action.ShowAllAction">
<result name="success">/WEB-INF/page/showAll.jsp</result>
</action>
<action name="showUser" class="com.javaweb.action.ShowUserAction">
<result name="success">/WEB-INF/page/showUser.jsp</result>
</action>
</package>
</struts>

spring.xml:(省略数据库及sessionFactory配制)

...
...

<!-- 配置业务逻辑组件 -->
<bean id="userService" class="com.javaweb.service.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>

<!-- 创建showAllAction实例 -->
<bean id="showAllAction" class="com.javaweb.action.ShowAllAction">
<property name="userService" ref="userService"></property>
</bean>

<!-- 创建showUserAction实例 -->
<bean id="showUserAction" class="com.javaweb.action.ShowUserAction">
<property name="userService" ref="userService"></property>
</bean>


源代码已经上传到我的CSDN上传文件中,各位同仁麻烦帮一下忙啊!MyEclipse项目来的。
...全文
168 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
安特矮油 2012-04-17
  • 打赏
  • 举报
回复
web.xml没有spring的监听,应该导致了service没有注入到action中,所以空指针错误了。
增加类似这样的配置

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/spring*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
a84992018 2012-04-17
  • 打赏
  • 举报
回复
眼花了
a84992018 2012-04-17
  • 打赏
  • 举报
回复
userService 没有初始化
Ku_wan 2012-04-17
  • 打赏
  • 举报
回复
Exc_9521 2012-04-17
  • 打赏
  • 举报
回复
顶 楼上 外加 struts.xml中的class=“” 换成spring 配置文件中产生的bean 的名称(showUserAction)
先生有火吗 2012-04-15
  • 打赏
  • 举报
回复
怎样才算交给spring创建?[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

你的spring 配置action 控制错了

<bean name="/showAll" class="com.javaweb.action.ShowAllAction">
<property name="userService" ref="userService"></property>
</bean>


弱弱的说一句,是不是应该这样。

……
[/Quote]
Ku_wan 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你的spring 配置action 控制错了

<bean name="/showAll" class="com.javaweb.action.ShowAllAction">
<property name="userService" ref="userService"></property>
</bean>
[/Quote]

弱弱的说一句,是不是应该这样。

<bean name="showAll" class="com.javaweb.action.ShowAllAction">
<property name="userService" ref="userService"></property>
</bean>

而且你的Action 没有交给 Spring 创建吧...
NoTargetException 2012-04-15
  • 打赏
  • 举报
回复
你的spring 配置action 控制错了

<bean name="/showAll" class="com.javaweb.action.ShowAllAction">
<property name="userService" ref="userService"></property>
</bean>

先生有火吗 2012-04-15
  • 打赏
  • 举报
回复
忘记说明了,运行http://localhost:8080/SSH2/javaweb/showAll.action时出现错误

67,513

社区成员

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

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