IIS URL重写无法将html更改为jsp页面并通过AJP连接器路由到Tomcat


  • 前端Web服务器:Windows Server 2008 R2 SP1

  • 后端Web服务器:Tomcat 5.5——JSP/Servlet引擎

  • 前端和后端Web服务器由AJP连接器链接,AJP连接器是在IIS上运行的isapi过滤器。

  • Tomcat和IIS位于同一服务器上。

我有很多文件夹的文件以.HTML结尾。这些文件位于Tomcat读取的同一目录中,即wwwroot/Tomcat_webapp/HTMLProjectFiles。AJP连接器或isapi过滤器将负责将tomcat_webapp文件夹中的任何内容传递给tomcat。

我需要让Tomcat处理它们,但我不能将这些文件重命名为JSP。Tomcat的web.xml不允许通过目录AND扩展进行筛选(即/HTMLProjectFiles/*.html无法完成,并且会生成错误(。我不想允许JSP处理所有HTML页面。

我的想法是使用IIS的URL重写引擎。我创建了一个入站规则,该规则使用JSP扩展名重写文件。不幸的是,它不起作用。我认为isapi过滤器可能在URL重写引擎启动之前启动,因此IIS从不将文件推送到Tomcat。至少,这不是我的预感。我不知道为什么它不起作用,或者IIS中是否有URL重写和isapi过滤器模块的优先顺序。

有人在这方面有过成功或类似的经历吗?

更新

我的直觉是IIS扫描URL,看到tomcat_webapp文件夹存在,并且不需要查看页面,只需将其发送给tomcat。然后,tomcat就按原样显示页面。目前,tomcat的web.xml将html处理为静态页面。因此,我可能需要研究一个直接使用tomcat的url重写。我不认为mod_rewrite可以工作,因为我没有运行Apache。

非常感谢。

如果您能提供部署的演示文件夹结构,这会有所帮助。根据我目前的理解,它可以通过以下方式解决:

  • 使用指定html资源目录URL的条目更新uriworkermap.properties,并将worker与之关联。示例:portal.com/tomcat_webapp/html_folder_name/*=worker1

最新更新