首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泽西岛网络服务

泽西岛网络服务
EN

Stack Overflow用户
提问于 2015-06-06 15:43:00
回答 1查看 1.6K关注 0票数 2

我正在尝试为web服务设置一个简单的Java应用程序。不过,我有以下问题。tomcat服务器无法找到资源http://localhost:8081/OnlineShop/rest/books/list,但它可以找到我的简单servlet http://localhost:8081/OnlineShop/index

我有下面的web.xml

另一方面,我注意到com.sun.jersey.spi.container.servlet.ServletContainer存在于我的项目中,因为我使用maven添加了依赖项,但是jersey.config.server.provider.packages不存在。也许这就是问题所在,但我不知道我必须补充的确切的依赖性。

我的BookRest.java有以下代码,在com.shop.rest包上。

最后,我的pom.xml有以下依赖项。

代码语言:javascript
复制
 <dependencies>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.19</version>
    </dependency>
    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib-ext-spring</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.18</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.19</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.19</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-common</artifactId>
        <version>2.17</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.17</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
EN

回答 1

Stack Overflow用户

发布于 2015-06-06 16:00:58

拜托,请把整个项目都处理掉。显然,您是一个初学者,似乎只是将随机配置和依赖关系放在一起,可能来自不同的教程。您的依赖项是不兼容的,web.xml配置也是错误的。就像我说的,放弃整个项目,从头开始。如果你刚刚开始,你应该使用其中一个启动应用程序。

您在Netbeans中,所以只需执行以下操作

  1. 文件→新项目
  2. 基于原型的Maven→项目
  3. 搜索jersey-quickstart-webapp
  4. 选择具有组ID org.glassfish.jersey.archetypes
  5. 应该显示最新版本。
  6. 从那开始应该是自我解释

您会发现添加的唯一依赖项是

代码语言:javascript
复制
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet-core</artifactId>
    <!-- use the following artifactId if you don't need servlet 2.x compatibility -->
    <!-- artifactId>jersey-container-servlet</artifactId -->
</dependency>

web.xml看起来就像

代码语言:javascript
复制
<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.stackoverflow.jersey</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

这将给你一个简单的应用程序的启动和运行。您将看到一个依赖项,需要取消对JSON支持的注释。不要评论。或者更好的是,不要评论它,然后将jersey-media-moxy改为jersey-media-json-jackson。杰克逊是个更好的JSON库。

此外,还可以在泽西文件中找到一些与泽西合作的好的阅读和参考材料。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30684707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档