【发布时间】:2019-04-25 00:18:37
【问题描述】:
我的控制器类中有以下代码
public class GoodsController{
@AutoWired
Private GoodsService goodsService;
public ResponseEntity<String> startCall(HttpServletRequest request) {
ResponseEntity<String> responseEntity = null;
try {
ResponseBean respBean = goodsService.startCall(request);
HttpHeaders responseHeaders = new HttpHeaders();
if(request.getAttribute(SessionConstants.GOODS_SESS) != null){
responseHeaders.set(SessionConstants.GOODS_SESS, request.getAttribute(SessionConstants.GOODS_SESS).toString());
}
responseEntity = new ResponseEntity<>(SessionUtil.objToJson(respBean, respBean), responseHeaders,
HttpStatus.valueOf(respBean.getStatus()));
return responseEntity;
} catch (AlightSessionException e) {
StringBuilder message = new StringBuilder("{\"message\": \"error:\""+e.getMessage()+", ")
.append("\"status\":\"400\"}");
responseEntity = new ResponseEntity<>(message.toString(), HttpStatus.BAD_REQUEST);
ErrorLogEventHelper.logErrorEvent(SessionController.class.getName(), message.toString(), "startSessionForPerson()", e,
ErrorLogEvent.ERROR_SEVERITY);
return responseEntity;
}
}
}
我的 TestClass 中有以下代码
public class GoodsControllerTest{
MockHttpServletRequestBuilder request =
MockMvcRequestBuilders
.post("/startCall").sessionAttr("personToken", "eyjpc");
ResultActions result = mockMvc.perform(request);
result.andExpect(MockMvcResultMatchers.status().isOk());
}
}
在执行时出现以下错误,请帮助我。
org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 java.lang.NullPointerException 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982) 在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:648) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 在 org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:65) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在 org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:167) 在 org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134) 在 org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:155) 在 com.alight.upoint.sessionservice.controller.SessionControllerTest.testGetEligiblePlans(SessionControllerTest.java:57) 在 org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) 在 org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) 在 org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) 在 org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 在 org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) 引起:java.lang.NullPointerException 在 com.alight.upoint.sessionservice.controller.SessionController.startSessionForPerson(SessionController.java:51) 在 org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) 在 org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ... 17 更多
【问题讨论】:
标签: mockito