JUnit单元测试,不启用服务,调用webservice接口

xmxgh100 2016-10-12 04:37:05
在JUnit单元测试中,调用webservice不启动服务时,接口中PhaseInterceptorChain.getCurrentMessage()获取的值为空
Message message = PhaseInterceptorChain.getCurrentMessage();
HttpServletRequest request = (HttpServletRequest) message.get(AbstractHTTPDestination.HTTP_REQUEST);
这个问题该如何解决
...全文
575 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmxgh100 2016-10-14
  • 打赏
  • 举报
回复
找到问题解决方法,在JUnit测试类中 /** * JUnit测试时,初始化PhaseInterceptorChain类中的Message * * @param params * @return */ public static void mockPhaseInterceptorChain(HttpServletRequest request) { Message message = new MessageImpl(); message.put(AbstractHTTPDestination.HTTP_REQUEST, request); try { Class clazz = Class.forName("org.apache.cxf.phase.PhaseInterceptorChain"); // 获取私有变量 Field field = clazz.getDeclaredField("CURRENT_MESSAGE"); field.setAccessible(true); // 得到私有的变量值 ThreadLocal<Message> currentMessage = (ThreadLocal<Message>) field.get(clazz); currentMessage.set(message); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } }

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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