артефакт не начинается с незаконного имени репо - PullRequest
3 голосов
/ 13 мая 2019

У меня есть недопустимое имя хранилища, которое начинается с цифры. Это старый репозиторий, созданный по запросу API (в версии Artifactory 6.5.1)

Artifactory принимает недопустимое имя с запросами API, но если вы перезапустите artifactory, он не работает

Так что моя проблема такая же, как здесь: https://www.jfrog.com/jira/browse/RTFACT-16669

За исключением того, что решение не работает для меня.

Поскольку мой экземпляр / сервер новый, поэтому у меня нет этого файла $ ARTIFACTORY_HOME / etc / artifactory.config.latest.xml с локальным хранилищем.

У меня есть репозитории на AWS S3 и база данных AWS RDS

И мой новый экземпляр AWS EC2 должен получить репозитории на S3

Мой вопрос:

Могу ли я запустить артефакт, игнорируя плохое репо?

Или

Могу ли я удалить репо без запуска артефакта? (без запроса API или GUI)

Логи здесь:

    2019-05-13 14:37:11,581 [art-init] [ERROR] (o.a.c.CentralConfigServiceImpl:744) - Could not load configuration due to: Failed to read object from stream

    java.lang.RuntimeException: Failed to read object from stream

    at org.artifactory.jaxb.JaxbHelper.read(JaxbHelper.java:131)

    at org.artifactory.jaxb.JaxbHelper.readConfig(JaxbHelper.java:66)

    at org.artifactory.descriptor.reader.CentralConfigReader.readAndConvert(CentralConfigReader.java:76)

и т.д ...

Caused by: javax.xml.bind.UnmarshalException: null

    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:335)

    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:578)

    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:264)

    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:229)

    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)

    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:125)

    at org.artifactory.jaxb.JaxbHelper.read(JaxbHelper.java:129)
    ... 56 common frames omitted

Caused by: org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '0ta' is not a valid value for 'NCName'.

и т.д ...

[art-init] [ERROR] (o.a.w.s.ArtifactoryContextConfigListener:96) - Application could not be initialized: null
java.lang.reflect.InvocationTargetException: null

и т. Д. *

Caused by: org.springframework.beans.factory.BeanInitializationException: Failed to initialize bean 'org.artifactory.security.access.AccessService'.; nested exception is com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NullPointerException

и т.д ...

[http-nio-8081-exec-2] [ERROR] (o.a.w.s.ArtifactoryFilter:194) - Artifactory failed to initialize: Context is null

Спасибо

Кирилл

1 Ответ

1 голос
/ 16 мая 2019

Дескриптор конфигурации Artifactory хранится в схеме Artifactory DB под таблицей с именем configs.Чтобы преодолеть это, вы можете сделать следующее:

  1. Извлечь конфигурацию artifactory.config.xml из таблицы configs
  2. Сохранить извлеченную конфигурацию в виде файла в: $ARTIFACTORY_HOME/etc/artifactory.config.import.xml
  3. Отредактируйте файл artifactory.config.import.xml и вручную исправьте / удалите ссылку на хранилище '0ta' из файла конфигурации
  4. После изменения дескриптора перезапустите службу Artifactory.

Примечание , если у вас уже есть артефакты, присвоенные недопустимому имени репо, вы не сможете их увидеть после изменения имени репозитория, однако, поскольку это новая установка, я неуверен, что это актуально для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...