这是我第一次处理web-app和maven。现在,我有一个宁静的网络服务项目,而且我正在寻找其服务器端 pom.xml文件。在那里有4个与Web应用程序相关的不同依赖项。这些是:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.3.2.v20150730</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.3.2.v20150730</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
<version>9.3.2.v20150730</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>2.20</version>
</dependency>
现在,据我所知,运行webapp需要3个实体。这些是Web server
,web container (servlet engine)
和servlet
。 (至少在我的申请中这些是必需的)
因此,我认为pom.xml中的依赖项应该与这些依赖项之一相对应。然而,由于存在4个依赖性但是3个逻辑实体,因此不存在一对一匹配。 (当然,我的pom.xml文件中的这些依赖项可能是多余的(未使用))
我的问题是这些依赖项中的哪一个与我上面列出的逻辑实体相对应?而且jetty-servlet和jetty-servlets依赖关系有什么区别?
修改
为了测试是否存在未使用的依赖项,我评论了第4个依赖项(jersey-container-jetty-http),但我的应用程序仍能正常工作。 因此,我认为:
EDIT2
我现在感到困惑。当我查看我的项目文件夹时,我找到了一个web.xml文件:
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<servlet>
<servlet-name>jersey-serlvet</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.myproject.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>com.myproject.rest.rest.filter.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
现在写一下,servlet名称是jersey-server
(com.sun.jersey.spi.container.servlet.ServletContainer)。但是在pom.xml中,jetty被定义为web容器?