[英]Jetty, Jersey, & Maven - Spring Error
因此,我最近開始使用maven來管理依賴關系,並開始嘗試使用Jersey來構建REST API。 我在這里遇到了很棒的教程。 在此處發布了類似的StackOverFlow問題,並且第一個接受的響應具有相同的Maven腳本。
我將要部署到的服務器是Jetty,因此我已經安裝了Jetty的eclipse插件(使用Jetty-9.2.5的 Eclipse Jetty 3.8.0 ),過去僅將其用於servlet就沒有問題。 當我修改pom.xml文件時,我進行了Maven-Clean & Maven-安裝 ,並且在啟動時顯示的類路徑中列出的所有內容似乎都適當。
所以我不太確定為什么它沒有看到那個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>
錯誤:
2015-02-05 09:26:09.624:INFO::main: Logging initialized @102ms
Configuration: /var/folders/25/_t5gg17n7577_b94gh4nkh700000gn/T/eclipseJettyPlugin.config.JerseyTest.xml
Version: 9.2.5.v20141112
Context: /
Port: 8080
Classpath: /Users/me/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
/Users/me/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
/Users/me/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
/Users/me/.m2/repository/javax/ws/rs/javax.ws.rs-api/2.0/javax.ws.rs-api-2.0.jar
/Users/me/.m2/repository/org/eclipse/jetty/jetty-continuation/9.1.1.v20140108/jetty-continuation-9.1.1.v20140108.jar
/Users/me/.m2/repository/org/eclipse/jetty/jetty-http/9.2.5.v20141112/jetty-http-9.2.5.v20141112.jar
/Users/me/.m2/repository/org/eclipse/jetty/jetty-io/9.2.5.v20141112/jetty-io-9.2.5.v20141112.jar
/Users/me/.m2/repository/org/eclipse/jetty/jetty-security/9.2.5.v20141112/jetty-security-9.2.5.v20141112.jar
/Users/me/.m2/repository/org/eclipse/jetty/jetty-server/9.2.5.v20141112/jetty-server-9.2.5.v20141112.jar
/Users/me/.m2/repository/org/eclipse/jetty/jetty-servlet/9.2.5.v20141112/jetty-servlet-9.2.5.v20141112.jar
/Users/me/.m2/repository/org/eclipse/jetty/jetty-util/9.2.5.v20141112/jetty-util-9.2.5.v20141112.jar
/Users/me/.m2/repository/org/eclipse/persistence/org.eclipse.persistence.antlr/2.5.0/org.eclipse.persistence.antlr-2.5.0.jar
/Users/me/.m2/repository/org/eclipse/persistence/org.eclipse.persistence.asm/2.5.0/org.eclipse.persistence.asm-2.5.0.jar
/Users/me/.m2/repository/org/eclipse/persistence/org.eclipse.persistence.core/2.5.0/org.eclipse.persistence.core-2.5.0.jar
/Users/me/.m2/repository/org/eclipse/persistence/org.eclipse.persistence.moxy/2.5.0/org.eclipse.persistence.moxy-2.5.0.jar
/Users/me/.m2/repository/org/glassfish/hk2/external/aopalliance-repackaged/2.2.0/aopalliance-repackaged-2.2.0.jar
/Users/me/.m2/repository/org/glassfish/hk2/external/javax.inject/2.2.0/javax.inject-2.2.0.jar
/Users/me/.m2/repository/org/glassfish/hk2/hk2-api/2.2.0/hk2-api-2.2.0.jar
/Users/me/.m2/repository/org/glassfish/hk2/hk2-locator/2.2.0/hk2-locator-2.2.0.jar
/Users/me/.m2/repository/org/glassfish/hk2/hk2-utils/2.2.0/hk2-utils-2.2.0.jar
/Users/me/.m2/repository/org/glassfish/hk2/osgi-resource-locator/1.0.1/osgi-resource-locator-1.0.1.jar
/Users/me/.m2/repository/org/glassfish/jersey/bundles/repackaged/jersey-guava/2.7/jersey-guava-2.7.jar
/Users/me/.m2/repository/org/glassfish/jersey/containers/jersey-container-jetty-http/2.7/jersey-container-jetty-http-2.7.jar
/Users/me/.m2/repository/org/glassfish/jersey/containers/jersey-container-servlet-core/2.7/jersey-container-servlet-core-2.7.jar
/Users/me/.m2/repository/org/glassfish/jersey/core/jersey-client/2.7/jersey-client-2.7.jar
/Users/me/.m2/repository/org/glassfish/jersey/core/jersey-common/2.7/jersey-common-2.7.jar
/Users/me/.m2/repository/org/glassfish/jersey/core/jersey-server/2.7/jersey-server-2.7.jar
/Users/me/.m2/repository/org/glassfish/jersey/ext/jersey-entity-filtering/2.7/jersey-entity-filtering-2.7.jar
/Users/me/.m2/repository/org/glassfish/jersey/media/jersey-media-moxy/2.7/jersey-media-moxy-2.7.jar
/Users/me/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
/Users/me/Documents/workspace/JerseyTest/target/classes
2015-02-05 09:26:09.967:INFO:oejs.Server:main: jetty-9.2.5.v20141112
2015-02-05 09:26:11.199:WARN:oeja.AnnotationConfiguration:main: ServletContainerInitializers: detected. Class hierarchy: empty
2015-02-05 09:26:11.382:WARN:oejs.SecurityHandler:main: ServletContext@o.e.j.w.WebAppContext@1ed4004b{/,file:/Users/me/Documents/workspace/JerseyTest/src/main/webapp/,STARTING}{/Users/me/Documents/workspace/JerseyTest/src/main/webapp} has uncovered http methods for path: /
2015-02-05 09:26:11.412:WARN:oejs.BaseHolder:main:
java.lang.ClassNotFoundException: com.sun.jersey.spi.spring.container.servlet.SpringServlet
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" 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>
謝謝!
您只是缺少正確的工件。
在您的項目中根本沒有對servlet com.sun.jersey.spi.spring.container.servlet.SpringServlet
的引用。
在search.maven.org上快速搜索com.sun.jersey.spi.spring.container.servlet.SpringServlet
顯示包含該類的工件。
您可能會丟失依賴性,或者您不應該在安裝時使用該特定的servlet。 由您決定以哪種方式撥打電話。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.