一个应用程序的多个上下文根

时间:2012-11-08 15:37:10

标签: redirect jboss forwarding mdm

我们已重命名Apple MDM使用的上下文根,现在需要向后兼容已注册的设备。 我们正在运行JBoss

我的第一次尝试只是向application.xml添加第二个模块条目,其中包含新的上下文根但是相同的war文件。我没有工作,除非我用新名称制作了war文件的副本。我真的不喜欢这个解决方案虽然有效。

相反,我尝试将一个Valve添加到根应用程序,然后该应用程序将旧的上下文根重定向到新的根。这也非常有效,直到设备发出POST,然后发布的二进制内容丢失 这个解决方案的好处是我们可以建立一个新的上下文根,为处理Android和Windows Phone的MDM做好准备。

这可以通过前进来完成,那么应该如何实施呢?

1 个答案:

答案 0 :(得分:2)

在我们公司,我们用代理解决了这些问题,因此客户端并不真正直接访问JBoss服务器,而是直接访问重定向到JBoss的代理。我们使用带有mod_proxy的Apache Web服务器。

因此,对于Apache使用mod_proxy,你需要设置它:

# for the newcontext
ProxyPass /newcontext http://jbosserver.com/newcontext
ProxyPassReverse /newcontext http://jbossserver.com/newcontex
# for the oldcontext
ProxyPass /oldcontext http://jbosserver.com/newcontext
ProxyPassReverse /oldcontext http://jbosserver.com/newcontext

因此,如果代理的名称是apacheserver.com,您可以使用以下命令访问该服务: http://apacheserver.com/newcontext 要么 http://apacheserver.com/oldcontext

此体系结构的另一个优点是,它为您提供了额外的安全性,因为客户端无法直接访问Web服务器。当然,您不仅限于一个上下文,您可以在apache中创建任意数量的内容。

我希望它会有所帮助。