junit测试问题webwork+spring+hibernate测试添加信息为何出现NullPointerException

chenwali 2009-02-27 11:10:39
//测试类
public void testAddAblum(){
Map map1 = new HashMap();
map1.put("ablum.id", 21212121);
map1.put("ablum.name", "专辑名称");
Map map2 = new HashMap();
map2.put(ActionContext.PARAMETERS, map1);


ActionProxy proxy = null;
try {
proxy = ActionProxyFactory.getFactory().createActionProxy("/ablum", "addAblum", map2);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/*.xml");
AblumService ablumService = (AblumService)applicationContext.getBean("ablumService");

AblumAction ablumAction = (AblumAction)proxy.getAction();

ablumAction.setAblumService(ablumService);
proxy.setExecuteResult(false);
try {
proxy.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
//我的配置文件
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<package name="ablum" extends="default" namespace="/ablum">
<action name="addAblum" class="com.koocu.front.action.AblumAction" method="addAblum">
<result name="success" type="dispatcher">/index.jsp</result>
</action>

</package>
</xwork>
//这个方法是action里的
public String addAblum(){
System.out.println(ablum.getName());
this.ablumService.save(ablum);
return this.SUCCESS;
}
问题1.我用页面测试时,程序没有问题。但是换成JUnit就出现以下问题
2.我还有个测试就是在用户注册的没有问题,都能进行测试。
java.lang.NullPointerException
at com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:89)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
at test.com.user.test.AblumTest.testAddAblum(AblumTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)


...全文
297 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx6698 2011-04-25
  • 打赏
  • 举报
回复
你的spring配置文件估计没有初始化
zhengyu119079436 2009-02-27
  • 打赏
  • 举报
回复
你用的是什么工具啊?会设置断点么?
如果不会就在每一句代码后面加上一句输出到控制台的语句,随便打点什么,看打印到那一句就报错了就知道是哪里为空了。
chenwali 2009-02-27
  • 打赏
  • 举报
回复
OK了,问题主要是我的配置文件里面少了句<interceptor-ref name="params" />加上就可以了。晕死得了。

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<package name="ablum" extends="default" namespace="/ablum">
<action name="addAblum" class="com.koocu.front.action.AblumAction" method="addAblum">
<result name="success" type="dispatcher">/index.jsp </result>
</action>
</package>
</xwork>
chenwali 2009-02-27
  • 打赏
  • 举报
回复
这是42行proxy.execute();
Jacky_Zhu_1983 2009-02-27
  • 打赏
  • 举报
回复
42行是哪一行。...?
chenwali 2009-02-27
  • 打赏
  • 举报
回复
proxy = ActionProxyFactory.getFactory().createActionProxy("/ablum",
"addAblum", map2);
这个不是空的。我测试过。
believefym 2009-02-27
  • 打赏
  • 举报
回复
proxy = ActionProxyFactory.getFactory().createActionProxy("/ablum",
"addAblum", map2);

应该是这个返回null,你再调调看
chenwali 2009-02-27
  • 打赏
  • 举报
回复
package test.com.user.test;

import java.util.HashMap;
import java.util.Map;

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.koocu.front.action.AblumAction;
import com.koocu.front.service.AblumService;
import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionProxy;
import com.opensymphony.xwork.ActionProxyFactory;

public class AblumTest extends TestCase{

public void testAddAblum(){
Map map1 = new HashMap();
map1.put("ablum.id", 21212121);
map1.put("ablum.name", "专辑名称");
Map map2 = new HashMap();
map2.put(ActionContext.PARAMETERS, map1);


ActionProxy proxy = null;
try {
proxy = ActionProxyFactory.getFactory().createActionProxy("/ablum", "addAblum", map2);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/*.xml");
AblumService ablumService = (AblumService)applicationContext.getBean("ablumService");

AblumAction ablumAction = (AblumAction)proxy.getAction();

ablumAction.setAblumService(ablumService);
proxy.setExecuteResult(false);
try {
proxy.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
chenwali 2009-02-27
  • 打赏
  • 举报
回复
类名啊
chenwali 2009-02-27
  • 打赏
  • 举报
回复
对就是在这句上,我有些不太明白,为何这句出现NullPointException呢?
Johnson_Hong 2009-02-27
  • 打赏
  • 举报
回复
AblumTest.java:42是什么????
Jacky_Zhu_1983 2009-02-27
  • 打赏
  • 举报
回复
at test.com.user.test.AblumTest.testAddAblum(AblumTest.java:42)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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