какой init-параметр использовать: jersey.config.server.provider.packages или javax.ws.rs.Application?

Я развертываю веб-службы JAX-RS в контейнере сервлетов Tomcat.

Я видел примеры кода, которые используют любой из следующих двух способов указания ресурсов вweb.xml файл:

способ 1 - использование init-param `jersey.config.server.provider.packages`
  <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.example</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>

... где ресурсы должны находиться вcom.example пакет и я полагаю, обнаружены с помощью Java RTTI.

способ 2 - использование init-параметра `javax.ws.rs.Application`
<servlet>
 <servlet-name>jersey-serlvet</servlet-name>
 <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
   <init-param>
           <param-name>javax.ws.rs.Application</param-name>
           <param-value>full.qualified.name.to.MyApplication</param-value>
   </init-param>
 <load-on-startup>1</load-on-startup>
</servlet> 

... гдеMyApplication класс явно идентифицирует классы ресурса:

public class MyApplication extends javax.ws.rs.core.Application {
   public Set<Class<?>> getClasses() {
      Set<Class<?>> s = new HashSet<Class<?>>();
      s.add(ResourceA.class);
      return s;
}

Является ли использование одного метода против другого чисто вопросом вкуса и конфигурации, и какие соображения нужно учитывать? Лично я предпочитаю более детальный контроль, предлагаемыйспособ 2Тем не менее, Maven Jersey 2,7 ​​архетип:

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-webapp \
            -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
            -DgroupId=com.example -DartifactId=simple-service-webapp -Dpackage=com.example \
            -DarchetypeVersion=2.7

... используетспособ 1 и это заставило меня задуматься.

Ответы на вопрос(1)

Ваш ответ на вопрос