为什么在定位我的应用时,Tomcat基本网址不是我的应用网址?

时间:2016-04-15 09:19:57

标签: java tomcat tomcat7 war maven-war-plugin

我已经对我的问题进行了很多搜索,但让我们面对现实,我没有找到解决方法。

我正在Tomcat7应用服务器上部署war文件。一切都好。但是当我在开发人员控制台的帮助下定位我的应用程序时,我可以看到所有链接(相对和绝对)都被破坏了。

因此,我的所有资产,内部API调用以及最终的应用程序都无法访问。

示例: 我的应用已部署到:var fd = new FormData(); fd.append("files", $scope.file); 。 我的链接(绝对和相对)基于此网址:http://localhost:8585/myapp/,然后我的所有链接都被破坏是合乎逻辑的,因为它们没有定位到正确的网址。

我想让我的应用程序不受任何部署依赖,约束或常量的影响。如果你可以用一些正确的方法来解决我的问题,那将是非常棒的:阅读我需要做的就是重命名我的战争ROOT.war在根级别部署让我生病。

祝你有个美好的一天,谢谢你, 最大

1 个答案:

答案 0 :(得分:0)

嗯,你基本上有3个选项来实现你(据我所知)想要的东西:

  1. 您将不会阅读的内容:在ROOT上下文中部署应用程序;但是,正如您所说的那样,使应用程序部署依赖,当然,并非总是可行;

  2. 你可以在你的Tomcat前放置一个代理(例如Apache HTTPD)并设置一些重写规则来将http://localhost/翻译成http://localhost:8585/myapp/ - 这有时很有用,但在大多数情况下也是如此复杂,有时不可能(例如,由于公司的部署政策);

  3. 恕我直言最合适的一个:使用相对链接(如亨利在评论中所述)和使用np.bincount(JSP中的request.contextPath);