试图创建REST服务使用新泽西州(Trying to create a REst Service u

2019-09-01 04:34发布

我下面这个教程创建使用新泽西州的REST服务。

有时我无法完全理解本教程的作者表示,但这些是我迄今遵循的步骤:

1) 创建一个动态的Web项目,并把它命名为de.vogella.jersey.first

2) 上安装Eclipse Maven依赖

3) 将我的项目的Maven项目(这意味着创建pom.xml文件)

4) 添加必要的依赖在pom.xml ,这样我可以使用平针织,而不必手动添加的jar文件。 我增加了以下XML:

<dependencies>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.17.1</version>
    </dependency>
</dependencies>

5)笔者建议创建一个Java类,并给出了一些代码。 我只能假设他要我们在src文件夹中创建一个新包,将其命名为de.vogella.jersey.first ,然后创建一个Java类,并将其命名为Hello ,代码放在那里。 这就是我所做的。

6) 然后,他提出打开web.xml文件。 即使世界在项目中没有这样的文件,但。 所以我继续前进,创造的这样一个文件WebContent/WEB-INF/lib路径。 我把他建议的代码。

7) 接着是,我不理解大多数步骤。 他谈到在web.xml ,我们只是增加了更具体,他说:

“参数‘com.sun.jersey.config.property.package’定义了包球衣将查找Web服务类。这个属性必须指向你的资源类。”

8) 最后一步是打开URL http://localhost:8080/de.vogella.jersey.first/rest/hello ,我的浏览器。 但是我得到HTTP Status 404 - /de.vogella.jersey.first/rest/hello


随着我拿什么来代替完全com.sun.jersey.config.property.package

是我遵循至今的步骤是正确的,还是我误解的东西吗?

Answer 1:

该物业com.sun.jersey.config.property.package只需要设置为包含Web服务类的包。 在本教程是de.vogella.jersey.first ,你可以看到Hello类是包下宣布。

换句话说,当你部署应用程序,泽西岛将寻找在包Web服务类de.vogella.jersey.first ,在这种情况下,它会找到类Hello被宣布与javax.ws.rs.Path注解,并创建一个Web服务端点侦听已声明与URL @Path

但是,我从来没有设置这样的事情对我的球衣项目。 我只是把我的Web服务类src文件夹,新泽西州承认他们不管我把它包在他们里面。 这是最低配置,我有泽西岛项目web.xml

<servlet>
    <description>JAX-RS Tools Generated - Do not modify</description>
    <servlet-name>JAX-RS Servlet</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>com.your.webservice.classes</param-value>
    </init-param> 
    -->

    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>JAX-RS Servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

此外,如果你不喜欢Maven项目,只需创建一个简单的动态Web项目和复制新泽西州的JAR到WebContent/WEB-INF/lib

此外,作为Qwerky建议, web.xml必须在WebContent/WEB-INF/.jar文件应该被复制到WebContent/WEB-INF/lib

除此之外,所描述的过程看起来很好!



Answer 2:

有关信息,如果您使用的是新泽西州2这个类已被替换jersey.config.server.provider.packages让你的资源配置是这样的:

<init-param>
  <param-name>jersey.config.server.provider.packages</param-name>
  <param-value>de.vogella.jersey.todo.resources</param-value>
</init-param>


文章来源: Trying to create a REst Service using Jersey