Java rest Web服务显示名称

Java rest Web服务显示名称,java,web-services,rest,jersey,Java,Web Services,Rest,Jersey,我刚刚开始构建自己的rest Web服务,我首先学习了这个优秀的教程: 然而,有一件事我不太明白。它与服务的路径有关 现在,hello资源的路径如下: http://localhost:8080/de.vogella.jersey.first/rest/hello 这是教程中的默认设置 但是,我想将其更改为更方便的链接,例如: http://localhost:8080/mywebservice/resources/hello 我将web.xml更改为以下内容,以尝试实现它: <?xm

我刚刚开始构建自己的rest Web服务,我首先学习了这个优秀的教程:

然而,有一件事我不太明白。它与服务的路径有关

现在,hello资源的路径如下:

http://localhost:8080/de.vogella.jersey.first/rest/hello
这是教程中的默认设置

但是,我想将其更改为更方便的链接,例如:

http://localhost:8080/mywebservice/resources/hello
我将web.xml更改为以下内容,以尝试实现它:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>mywebservice</display-name>
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>de.vogella.jersey.first</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/resources/*</url-pattern>
  </servlet-mapping>
</web-app> 

mywebservice
泽西岛休息服务
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
德沃格拉,泽西,第一
1.
泽西岛休息服务
/资源/*
我更改了显示名称和url模式,但没有效果。我无法使用我想要的路径访问资源,尽管我可以从旧路径检索它


为什么呢?web.xml中的displayname与此无关吗?

您正在更改Webapp的上下文名称。如果您以war(webapp存档)的形式部署它,war的名称将是上下文名称

在下面的示例中,您正在使用该名称创建一个动态Web项目。您必须对其进行适当的重命名。

这里也有同样的问题

我试图更改“显示名称”,但它根本不会影响服务URL。 不过,“url模式”的改变确实改变了url

从Vogella的“first REST示例”中,我可以说,URL最初构建如下:

http:// your_domain:port/**project-name**/url-pattern/path_from_rest_class 
http:// your_domain:port/**context-root**/url-pattern/path_from_rest_class 
问候 雅娜


添加:解决方案 与此同时,我找到了一种方法来更改URL的这一部分(“显示名称”):

  • 您可以转到EAR项目的application.xml(META-INF文件夹)
    -->如果没有xml,右键单击节点“部署描述符”并选择“生成部署描述符存根”,它将创建application.xml)

  • 要更改URL部分“显示名称”,必须更改“上下文根”中的值
    (不得更改“web uri”

现在,URL模式如下所示:

http:// your_domain:port/**project-name**/url-pattern/path_from_rest_class 
http:// your_domain:port/**context-root**/url-pattern/path_from_rest_class 
因此,您可以按自己喜欢的方式更改URL:-)希望这有帮助

问候
Jana

另一种方法是,右键单击项目并转到WebProject设置,从中可以更改与displayName相同的上下文根目录,然后在服务器上再次运行project

这对我来说很有效,因为问题只出现在displayName上,因为当我们将其更改为使用新URI访问时,它可以正常工作


谢谢

dwp的名字最初是de.vogella.jersey.first,但我将其重构为mywebservice。你是说所有的引用都没有更新还是什么?我不知道eclipse在哪里存储这些信息,尽管它可能是一个以点(.)开头的文件。您是否搜索了整个项目并查看了此特定字符串的出现情况:
e.vogela.jersey.first
?我一直想搜索,但找不到任何搜索项目功能?我现在搜索了,它得到了1次点击,更改后没有任何结果。请尝试创建一个名为“mywebservice”的新web项目,并保持servlet映射:Jersey REST Service/resources/*我创建了一个新项目,该项目正常工作。但必须有一个更简单的方法?这些事情你帮不上忙,有时IDE会以奇怪的方式运行。找到并添加了解决方案。你在哪里找到这个“部署描述符”节点?我似乎找不到它。我试着改变上下文根,但我没有看到任何影响,仍然是原来的唯一的作品。