Eclipse: Не удается загрузить файлы jar в папку Tomcat WEB-INF / Lib?

1

Я получаю эту ошибку tomcat "java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer", когда я запускаю Tomcat с использованием eclipse:

Я вижу, что eclipse не включает банки в папку (tomcat 7.0) WEB-INF/Lib, хотя я пробовал это:

  1. Включены зависимости Maven в "сборке веб-развертывания" в свойствах проекта. (Maven загрузил зависимости в POM.xml, но эти банки не подхватываются eclipse)

    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.dcr.javacode.rest.jersey</groupId>
  <artifactId>JAXRS-HelloJerseyExample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <repositories>
		<repository>
			<id>maven2-repository.java.net</id>
			<name>Java.net Repository for Maven</name>
			<url>http://download.java.net/maven/2/</url>
			<layout>default</layout>
		</repository>
	</repositories>
  
  <dependencies>
    	<dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.17</version>
        </dependency>        
  </dependencies>
</project>

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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">
  <display-name>JAXRS-HelloJerseyExample</display-name>
 	<servlet>
    	<servlet-name>JerseyRESTService</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.dcr.javacode.rest.jersey</param-value>
    	</init-param>
    	
    	<load-on-startup>1</load-on-startup>
  	</servlet>
  	<servlet-mapping>
    	<servlet-name>JerseyRESTService</servlet-name>
    	<url-pattern>/rest/*</url-pattern>
  	</servlet-mapping> 	
</web-app>
  • 0
    Добавьте этот (используйте 2.17)
  • 0
    Также <packaging>war</packaging> пом
Теги:
rest
jersey
tomcat7

1 ответ

0
Лучший ответ

Пара вещей я вижу неправильно.

  1. Вам не хватает элемента <packaging> в файле pom. Если это нужно развернуть в контейнер сервлетов, тогда пакет должен быть war. По умолчанию используется jar
  2. Вы используете jersey-server которого нет ServletContainer. Вместо этого используйте jersey-container-servlet

Но...

Самый простой способ начать работу с Джерси - использовать архетип Maven.

В Eclipse:

  1. [ File ] → [ New ] → [ Other ]
  2. [ Maven ] → [ Maven Project ] → Next
  3. Сохранять значения по умолчанию (убедитесь, что "Создать простой проект не установлен") → Next
  4. В следующем диалоговом окне в поле "Фильтр" введите jersey-quickstart-webapp. Для загрузки всех архетипов может потребоваться несколько секунд. Вы можете увидеть прогресс загрузки архетипов в небольшом индикаторе выполнения в самом нижнем правом углу IDE. Если вы не видите индикатор выполнения и нет результатов поиска, то, скорее всего, у вас нет архетипов. В этом случае следуйте инструкциям в первой части этого ответа
  5. Выберите версию org.glassfish.jersey.archetypes. Он должен по умолчанию использовать последнюю версию (на данный момент это 2.17) → Next
  6. Введите ваш groupId, artifactId и пакет → Finish

Это должно помочь вам запустить приложение для запуска Джерси, которое будет работать на Tomcat

  • 0
    Большое спасибо за указание на это. Я изменил pom.xml с парой пунктов, которые вы упомянули. Я также включил это и в файл pom.xml, чтобы он работал: code <build> <plugins> <plugin> <groupId> org.apache.maven.plugins </ groupId> <artifactId> maven-war-plugin </ artifactId> <конфигурация> <webXml> WebContent \ WEB-INF \ web.xml </ webXml> </ configuration> </ plugin> </ plugins> </ build> code

Ещё вопросы

Сообщество Overcoder
Наверх
Меню