如何从java调用servlet

Jos*_*nio 6 java servlets

我在JAR中有一个我无法改变的第三方servlet.我已经扩展了该servlet并且正常使用它,因为应该使用servlet,客户端发出一个调用我的servlet的HTTP请求.

但是现在客户端想要一个自动服务,也就是说,我需要从servlet所在的同一个webapp对该第三方servlet做一些请求.

我查看了第三方servlet代码,但我没有找到绕过servlet的地方因为HttpServletRequest和HttpServletResponse对象从方法传递给方法......基本上我似乎需要重新实现所有第三方派对代码.

我找到的解决方案,但不满足我:

使用HttpURLConnection从URL调用servlet:我的常识是从url调用第三方servlet不是最好的方法,除了增加的开销之外,我不想暴露第三方servlet.从URL调用我的servlet也会带来会话和其他事情的问题.

直接调用doGet:这似乎是不可能的,因为没有HttpServletRequest和HttpServletResponse的实现.

使用jMock或类似的东西:尚未探索此解决方案,但在真实环境中使用测试驱动的库会出错.

任何人都知道如何与第三方servlet交互?

编辑:

由于我的英语不是很好,我发现自己很难解释,这里有一个原理图,试图更好地解释

概要

编辑2:在与第三方制造商会面后,他们提出隔离我需要避免调用servlet的方法.如果你没有同样的运气,我确实检查了gigadotBalusC的答案.

gig*_*dot 1

如果我正确理解您的问题,您已经实施或拥有第三方 servlet 来为您生成报告。

现在您要做的是定期生成报告并存储在会话中,以便当用户想要获取报告时,他们可以使用另一个 servlet 检索它。

如果是这种情况,那么您希望该任务在您的服务器上定期运行。您将需要某种任务调度程序在您的服务器上运行,该任务所做的只是向您的 servlet 发出 http 请求(可以是 http GET 或 POST)。