Тончайшие моменты создания пригодных для использования банок (Джерси и Генсон)

Я могу каждый раз создавать беговую банку с помощью мастера Eclipse Runnable Jar. Если я установлю для Eclipse флажок "Сохранить как ANT-скрипт", затем включу этот код в build.xml и затем наш процесс GitLab CI выполнит сборку и создаст исполняемый файл jar, он запускается, но, похоже, не может найти класс в этом банке, хотя там находится файл.class.

Я не уверен, с чего начать. Результирующие файлы jar из сборки Eclipse и автономной сборки java / ant похожи, но не совсем одинаковы. Несколько вещей вышли из строя, но это все, на что я могу положиться в данный момент.

Как я могу начать оттачивать это? Моя программа - это веб-клиент на Джерси. Я использую Genson и сообщение об ошибке, которое я получаю с автономной сборкой jar

org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json

Но я могу перечислить файлы JAR, и оба имеют эти записи

        47 Sun Mar 27 22:23:48 CDT 2016 META-INF/services/javax.ws.rs.ext.MessageBodyWriter
  1220 Thu Aug 07 14:08:08 CDT 2014 javax/ws/rs/ext/MessageBodyWriter.class            

Прямо сейчас я могу обойти это, выполнив сборку в Eclipse и вручную развернув файл, но, конечно, это неприемлемо.

РЕДАКТИРОВАТЬ: Благодаря полезному другу, мне было указано на содержание META-INF/ услуг. Я не знаю, что это значит, но вот содержимое этого из обоих банок.

GitLab jar (get MessageBodyWriter error message)
     0 Sun Mar 27 22:23:48 CDT 2016 META-INF/services/
    47 Sun Mar 27 22:23:48 CDT 2016 META-INF/services/javax.json.spi.JsonProvider
    47 Sun Mar 27 22:23:48 CDT 2016 META-INF/services/javax.ws.rs.ext.MessageBodyReader
    47 Sun Mar 27 22:23:48 CDT 2016 META-INF/services/javax.ws.rs.ext.MessageBodyWriter
    47 Sun Mar 27 22:23:48 CDT 2016 META-INF/services/javax.ws.rs.ext.Providers
    50 Sun Mar 27 22:23:48 CDT 2016 META-INF/services/org.glassfish.jersey.internal.spi.AutoDiscoverable
    61 Fri May 27 19:08:18 CDT 2016 META-INF/services/org.glassfish.hk2.extension.ServiceLocatorGenerator
    60 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/org.glassfish.jersey.internal.spi.AutoDiscoverable
    67 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/javax.servlet.ServletContainerInitializer
    67 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/org.glassfish.jersey.servlet.spi.AsyncContextDelegateProvider
    63 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/org.glassfish.jersey.servlet.spi.FilterUrlMappingsProvider
    56 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/org.glassfish.jersey.internal.spi.ForcedAutoDiscoverable
    56 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/javax.ws.rs.ext.RuntimeDelegate
    73 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/org.glassfish.jersey.internal.spi.AutoDiscoverable
   137 Thu Oct 27 14:32:12 CDT 2016 META-INF/services/org.glassfish.jersey.internal.spi.ForcedAutoDiscoverable
   855 Sun Oct 02 11:14:44 CDT 2016 META-INF/services/javax.annotation.processing.Processor

Eclipse jar (works)
      0 Tue Dec 13 08:55:42 CST 2016 META-INF/services/
     47 Tue Dec 13 08:55:42 CST 2016 META-INF/services/javax.json.spi.JsonProvider
     47 Tue Dec 13 08:55:42 CST 2016 META-INF/services/javax.ws.rs.ext.MessageBodyReader
     47 Tue Dec 13 08:55:42 CST 2016 META-INF/services/javax.ws.rs.ext.MessageBodyWriter
     47 Tue Dec 13 08:55:42 CST 2016 META-INF/services/javax.ws.rs.ext.Providers
     50 Tue Dec 13 08:55:42 CST 2016 META-INF/services/org.glassfish.jersey.internal.spi.AutoDiscoverable
     61 Tue Dec 13 08:55:42 CST 2016 META-INF/services/org.glassfish.hk2.extension.ServiceLocatorGenerator
     67 Tue Dec 13 08:55:42 CST 2016 META-INF/services/javax.servlet.ServletContainerInitializer
     67 Tue Dec 13 08:55:42 CST 2016 META-INF/services/org.glassfish.jersey.servlet.spi.AsyncContextDelegateProvider
     63 Tue Dec 13 08:55:42 CST 2016 META-INF/services/org.glassfish.jersey.servlet.spi.FilterUrlMappingsProvider
     56 Tue Dec 13 08:55:42 CST 2016 META-INF/services/org.glassfish.jersey.internal.spi.ForcedAutoDiscoverable
     56 Tue Dec 13 08:55:42 CST 2016 META-INF/services/javax.ws.rs.ext.RuntimeDelegate
    855 Tue Dec 13 08:55:44 CST 2016 META-INF/services/javax.annotation.processing.Processor

EDIT3: содержимое каждого дубликатаorg.glassfish.jersey.internal.spi.AutoDiscoverable (3)

  1. com.owlike.genson.ext.jaxrs.JerseyAutoDiscoverable
  2. org.glassfish.jersey.logging.LoggingFeatureAutoDiscoverable
  3. org.glassfish.jersey.server.filter.internal.ServerFiltersAutoDiscoverable

org.glassfish.jersey.internal.spi.ForcedAutoDiscoverable (2)

  1. org.glassfish.jersey.jaxb.internal.JaxbAutoDiscoverable
  2. org.glassfish.jersey.logging.LoggingFeatureAutoDiscoverable

В отличие от "хорошего" файла JAR, созданного Eclipse, который не имеет дубликатов:

в org.glassfish.jersey.internal.spi.AutoDiscoverable com.owlike.genson.ext.jaxrs.JerseyAutoDiscoverable

Я думаю, что я буду пробираться через другие вещи META-INF, так что посмотрим, что можно увидеть.

в org.glassfish.jersey.internal.spi.ForcedAutoDiscoverable org.glassfish.jersey.jaxb.internal.JaxbAutoDiscoverable

0 ответов

Другие вопросы по тегам