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 数据库架构中。
为了克服这个问题,您可以执行以下操作:
- 从
configs
table 中提取 artifactory.config.xml
配置
- 将提取的配置作为文件存储在:
$ARTIFACTORY_HOME/etc/artifactory.config.import.xml
- 编辑
artifactory.config.import.xml
文件并手动 fix/delete 配置文件中的“0ta”存储库引用
- 修改描述符后,重启Artifactory服务
注意,如果你已经有工件分配给非法的仓库名称,你将无法在修改仓库名称后看到它们,但是,因为它是一个新的安装,我不确定这是否与您相关。
我有一个以数字开头的非法存储库名称。 这是一个旧的回购协议,使用 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 数据库架构中。
为了克服这个问题,您可以执行以下操作:
- 从
configs
table 中提取 - 将提取的配置作为文件存储在:
$ARTIFACTORY_HOME/etc/artifactory.config.import.xml
- 编辑
artifactory.config.import.xml
文件并手动 fix/delete 配置文件中的“0ta”存储库引用 - 修改描述符后,重启Artifactory服务
artifactory.config.xml
配置
注意,如果你已经有工件分配给非法的仓库名称,你将无法在修改仓库名称后看到它们,但是,因为它是一个新的安装,我不确定这是否与您相关。