gpt4 book ai didi

java - API alfresco 存储库版本 6.X 或 7.X 的应用程序上下文的初始化问题

转载 作者:行者123 更新时间:2023-12-02 03:21:04 26 4
gpt4 key购买 nike

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

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

违规资源:类路径资源 [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;行号:587;列数:107; cvc-datatype-valid.1.2.1:“cm:constraintRegistry”不是“NCName”的有效值。

我的代码非常简单:

public class 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>

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

最佳答案

问题是您在 pom.xml 中混合了不同版本的 Spring 框架 jar-s。要解决此问题,只需从 pom.xml 中删除所有不必要的依赖项,并且不要使用旧版本的 Spring,例如“all-in-one”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 - 为了避免出现问题,请尝试在项目中使用与好吧。

关于java - API alfresco 存储库版本 6.X 或 7.X 的应用程序上下文的初始化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56926708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com