API露天仓库版本6.X或7.X的应用程序上下文的初始化问题

问题描述 投票:0回答:1

[当我想初始化API #alfresco存储库版本6.X或7.X的#应用程序上下文(我测试了最新的版本7.78和版本6.57时,出现以下错误:

配置问题:无法从URL位置[classpath:alfresco / application-context-core.xml]导入bean定义

令人讨厌的资源:类路径资源[alfresco / application-context.xml];嵌套的异常是org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:无法从URL位置导入bean定义[classpath:alfresco / core-services-context.xml]

令人讨厌的资源:类路径资源[alfresco / application-context-core.xml];嵌套的异常是org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源[alfresco / core-services-context.xml]的XML文档中的第587行无效;嵌套的异常是org.xml.sax.SAXParseException; lineNumber:587; columnNumber:107; cvc-datatype-valid.1.2.1:“ cm:constraintRegistry”不是“ NCName”的有效值。

我的代码很简单:

`公共类AlfrescoApp {

public static void main(String[] args) {

    try {
        ServiceRegistry serviceRegistry = null;
        ApplicationContext context = null;
        context = new ClassPathXmlApplicationContext("alfresco/application-context.xml");

        serviceRegistry = (ServiceRegistry) context.getBean(ServiceRegistry.SERVICE_REGISTRY);
        AuthenticationUtil.setAdminUserAsFullyAuthenticatedUser();

        NodeService nodeService = serviceRegistry.getNodeService();

    } catch (Exception e) {
        System.err.println(e.getMessage());
    }
}`

这是我的POM.xml文件的内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.alfresco.project</groupId>
    <artifactId>white_box_project_alfresco</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>

  <dependencies>
        <dependency>
               <groupId>org.alfresco</groupId>
              <artifactId>alfresco-repository</artifactId>
              <version>7.78</version>
        </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.32</version>
            </dependency>          

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>

             <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>
           <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>
           <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>3.2.14.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring</artifactId>
                <version>2.5</version>
            </dependency>
  </dependencies>



    <build>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>Cp1252</encoding>
                </configuration>
            </plugin>
        </plugins>

    </build>

<repositories>
        <repository>
            <id>alfresco-public</id>
            <url>https://artifacts.alfresco.com/nexus/content/repositories/public/</url>
        </repository>
    <repository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>http://repository.jboss.org/nexus/content/groups/public/</url>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <updatePolicy>daily</updatePolicy>
      </snapshots>
    </repository>
  </repositories>

</project>

我不知道为什么上面的代码会出现这些错误。请您能帮我解决这个问题吗?

java maven alfresco alfresco-maven
1个回答
0
投票

问题是,您在pom.xml中混合了各种版本的Spring框架jar-s。要解决此问题,只需从pom.xml中删除所有不必要的依赖项,并且不要使用Spring的旧版本(例如“多合一” 2.5版本)。

旧的Spring版本似乎不允许在bean标识符中使用“:”(NCName类型禁止这样做,具体来说)。这是在“ alfresco / core-services-context.xml”中定义的一种bean的情况,您提供的错误输出中提到了这种bean:

<bean id="cm:constraintRegistry" class="org.alfresco.repo.dictionary.constraint.ConstraintRegistry" />

[如果查看alfresco-repository-7.78.jar的pom.xml,您将看到它依赖于Spring版本5.1.8.RELEASE-为避免出现问题,请尝试在项目中也使用相同的版本。

© www.soinside.com 2019 - 2024. All rights reserved.