artifactory 不要以非法的回购名称开头

artifactory don't start with an illegal repo name

我有一个以数字开头的非法存储库名称。 这是一个旧的回购协议,使用 API 请求创建(在 Artifactory 6.5.1 版本中)

Artifactory 接受带有 API 请求的非法名称,但如果您重新启动 artifactory,它就会关闭

所以我的问题和这里一样: https://www.jfrog.com/jira/browse/RTFACT-16669

除了解决方案对我不起作用。

因为我的 instance/server 是新的,所以我没有这个文件 $ARTIFACTORY_HOME/etc/artifactory.config.latest.xml 与本地存储库。

我在 AWS S3 和 AWS RDS 数据库上有存储库

我的新 AWS EC2 实例必须在 S3 上获取回购协议

我的问题是:

我可以开始神器忽略坏回购吗?

我可以在不启动 artifactory 的情况下删除 repo 吗? (没有 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

谢谢

西里尔

Artifactory 配置描述符存储在名为 configs 的 table 下的 Artifactory 数据库架构中。 为了克服这个问题,您可以执行以下操作:

  1. configs table
  2. 中提取 artifactory.config.xml 配置
  3. 将提取的配置作为文件存储在:$ARTIFACTORY_HOME/etc/artifactory.config.import.xml
  4. 编辑 artifactory.config.import.xml 文件并手动 fix/delete 配置文件中的“0ta”存储库引用
  5. 修改描述符后,重启Artifactory服务

注意,如果你已经有工件分配给非法的仓库名称,你将无法在修改仓库名称后看到它们,但是,因为它是一个新的安装,我不确定这是否与您相关。