gpt4 book ai didi

angularjs - [Angular, Jersey]为什么我必须使用 jersey 在 $http 中指定应用程序名称

转载 作者:行者123 更新时间:2023-11-28 22:52:33 25 4
gpt4 key购买 nike

我想知道为什么我在调用 $http 时必须指定我的应用程序的名称。每次我在网上看到一个使用 jersey 和 angular 的例子时,他们都没有指定应用程序名称。

这是我必须写的才能让它工作:

$http({method: "POST", url: '/MyAppName/rest/service'})

这是我在网上看到的,但对我不起作用:

$http({method: "POST", url: '/rest/service'}) 

我的 web.xml 很常见:

<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

我不想指定我的应用程序的名称。那么怎么办呢?

最佳答案

我相信您的网络应用程序部署在 Tomcat 或 Jetty 容器上。由于您可以在这样的容器上部署几个应用程序,因此每个应用程序的路径不能是您服务器的根目录 (/),而是与根目录相关的内容 - 在这些应用程序服务器中,它是您的应用程序的名称。

如果您的 .war 安装为某个名称下的 Web 应用程序,则对该应用程序的 REST 资源的所有请求都需要与该 Web 应用程序的名称相关:

enter image description here

在那种情况下,你有像

这样的路径
  • /经理/

  • /myWar/

这个问题可以通过在重写 URL 的应用服务器前面使用 apache httpd 或许多现有的之一来解决 rewrite filters用于 Tomcat。

另一种解决方案是将所有 REST 服务部署到一个名为 rest 的 .war 中,并将 HTML 和 JS 作为静态资源部署 and map the path to the static resources这样你就可以从根 url 中找到它们。就个人而言,我认为分离 java 类和 html 不值得,但这是您的选择。

关于angularjs - [Angular, Jersey]为什么我必须使用 jersey 在 $http 中指定应用程序名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35801535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com