Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jetty、Jersey和;Maven-Spring误差_Java_Eclipse_Maven_Jersey_Jetty - Fatal编程技术网

Java Jetty、Jersey和;Maven-Spring误差

Java Jetty、Jersey和;Maven-Spring误差,java,eclipse,maven,jersey,jetty,Java,Eclipse,Maven,Jersey,Jetty,所以我最近开始使用maven来管理依赖项,并开始尝试使用Jersey来构建RESTAPI。我遇到了一个很棒的教程。发布了一个类似的StackOverFlow问题,并且第一个接受的响应具有相同的maven脚本 我将要部署到的服务器是Jetty,因此我已经为Jetty安装了eclipse插件(EclipseJetty 3.8.0,它使用Jetty-9.2.5),并且过去仅在servlet中使用它没有问题。当我修改pom.xml文件时,我会执行Maven-Clean&Maven-Install,在启动

所以我最近开始使用maven来管理依赖项,并开始尝试使用Jersey来构建RESTAPI。我遇到了一个很棒的教程。发布了一个类似的StackOverFlow问题,并且第一个接受的响应具有相同的maven脚本

我将要部署到的服务器是Jetty,因此我已经为Jetty安装了eclipse插件(EclipseJetty 3.8.0,它使用Jetty-9.2.5),并且过去仅在servlet中使用它没有问题。当我修改pom.xml文件时,我会执行Maven-Clean&Maven-Install,在启动时显示的类路径中,所有内容都会适当地列出

所以我不太确定为什么它没有看到SpringServlet。此外,为什么在上面提供的链接中,当他们主要使用Jetty时,他们会引用GlassFish模块

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.foo</groupId>
  <artifactId>JerseyTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>9.2.5.v20141112</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>9.2.5.v20141112</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-http</artifactId>
        <version>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>2.7</version>
      </dependency>
    </dependencies>
</project>
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">


<servlet>
    <servlet-name>rest.service</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
        <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.foo.servlets</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>rest.service</servlet-name>
    <url-pattern>/service/*</url-pattern>
</servlet-mapping>

</web-app>
web.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.foo</groupId>
  <artifactId>JerseyTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>9.2.5.v20141112</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>9.2.5.v20141112</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-http</artifactId>
        <version>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>2.7</version>
      </dependency>
    </dependencies>
</project>
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">


<servlet>
    <servlet-name>rest.service</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
        <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.foo.servlets</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>rest.service</servlet-name>
    <url-pattern>/service/*</url-pattern>
</servlet-mapping>

</web-app>

休息服务
com.sun.jersey.spi.spring.container.servlet.SpringServlet
com.sun.jersey.config.property.resourceConfigClass
com.sun.jersey.api.core.PackagesResourceConfig
com.sun.jersey.config.property.packages
com.foo.servlets
1.
休息服务
/服务/*

谢谢

您只是缺少正确的工件

您的项目中根本不存在对servlet
com.sun.jersey.spi.spring.container.servlet.SpringServlet
的引用

快速搜索将显示包含该类的工件


您可能缺少依赖项,或者不应该在设置中使用特定的servlet。至于“glassfish”,它似乎只是jersey模块的groupId,而不是实际的glassfish服务器LIB。对于主要问题,我看不到任何jersey spring依赖性,因此我猜问题来自于此。看看这里关于使用Spring的Jersey:你完全正确。我想我只是混合和匹配了教程中的兼容工件。非常感谢你!