2012-02-29 56 views
0

有人可以告诉Spring JMS监听器类中是否有获取HttpServletRequest和HttpServletResponse的方法?我的JMS监听器在springContext.xml文件中定义。Spring JMS监听器中的HttpservletRequest和响应

+0

当JMS消息可用时,JMS侦听器被触发。为什么你会在同一个环境中有一个HTTPRequest? – 2012-02-29 01:14:32

+0

我需要调用一些具有HttpServletRequest/Response对象作为参数的方法..有没有办法模拟这些对象 – sea 2012-02-29 01:17:54

+0

呃,有什么方法?如果它是你写的,并且它不需要HttpRequest(因为我没有看到你总是会拥有这个和一个JMS消息的情况),那么只需传递null?或重构... – 2012-02-29 01:37:34

回答

0

我结束了使用JAXDispatcher从我的JMS监听器调用我的服务。

jaxbDispatcher.doGET(null, url, null, "application/xml", true); 
+0

如果你解决了你自己的问题,你应该接受这个答案。 – 2012-10-20 00:45:52

1

首先,您无法访问JMS侦听器中的HTTP servlet请求和响应。这些都是完全独立的模块,甚至可以驻留在不同的物理服务器上。

可以使用来自spring-test.jarMockHttpServletRequestMockHttpServletResponse - 但他们是为了将单元/集成测试中使用,而不是在生产代码。

我真的很希望看到你的代码需要MockHttpServletRequest和响应。我的猜测是,它可以重构或重新设计为仅使用上述相关字段,如请求URL或用户名。

+0

我的评论的信息扩展。不知道这些模拟对象,但是这里有一个更大的问题/困惑。我的钱花在重构/重新设计解决方案上。 +1 – 2012-03-02 01:27:47