gpt4 book ai didi

java - 从 3.4.d 迁移扩展到 4.2.e(和 5.0.a)后,Alfresco 无法加载 spring 上下文

转载 作者:行者123 更新时间:2023-11-28 22:20:40 27 4
gpt4 key购买 nike

三天以来我一直在运行以下程序,调试/谷歌搜索似乎没有太大帮助。

这是我的背景:

我有一个遗留应用程序——一个使用 war overlay 的 Alfresco 3.4.d 扩展——它本身的扩展没有什么特别之处 - 许多特定的管理器和服务是通过 spring 上下文开发的,并且功能齐全。

我所做的只是将 Alfresco 版本从 3.4.d 升级到 4.2.e,这是我所做的:

  1. 在磁盘某处安装了 Alfresco-4.2.e cummunity 发行版。
  2. 在 Eclipse 上,创建了一个 Tomcat 服务器,其中 CATALINA_BASE 是分发 TOMCAT。
  3. 我按照文档来部署我的扩展程序而不是原来的 alfresco.war(实际上从$ALF/tomcat/webapps.
  4. 我正在使用 MySQL,这方面的一切都运行良好。

我的问题:

在应用程序引导时,出现以下异常:

I understood that it's related to CXF but I can't figure out how to deal with it

.

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'smsManagerService': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1429)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 86 more
Caused by: java.lang.NullPointerException
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createBindingInfo(AbstractWSDLBasedEndpointFactory.java:338)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpointInfo(AbstractWSDLBasedEndpointFactory.java:252)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:147)
at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:153)
at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:151)
at org.apache.cxf.jaxws.spring.JaxWsProxyFactoryBeanDefinitionParser$JAXWSSpringClientProxyFactoryBean.create(JaxWsProxyFactoryBeanDefinitionParser.java:79)
at org.apache.cxf.jaxws.spring.JaxWsProxyFactoryBeanDefinitionParser$JAXWSSpringClientProxyFactoryBean.getObject(JaxWsProxyFactoryBeanDefinitionParser.java:83)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 91 more

评论/讨论后添加的额外内容

短信管理器服务代码:

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceFeature;
import javax.xml.ws.Service;

/**
* This class was generated by Apache CXF 2.7.6
* 2013-09-20T12:05:27.093+02:00
* Generated source version: 2.7.6
*
*/
@WebServiceClient(name = "managerService",
wsdlLocation = "CustomSoapi-dlw-1.61.wsdl",
targetNamespace = "http://soapi.XXX.com/manager")
public class ManagerService extends Service {

public final static URL WSDL_LOCATION;

public final static QName SERVICE = new QName("http://soapi.XXX.com/manager", "managerService");
public final static QName ManagerPort = new QName("http://soapi.XXX.com/manager", "managerPort");
static {
URL url = ManagerService.class.getResource("CustomSoapi-dlw-1.61.wsdl");
if (url == null) {
url = ManagerService.class.getClassLoader().getResource("CustomSoapi-dlw-1.61.wsdl");
}
if (url == null) {
java.util.logging.Logger.getLogger(ManagerService.class.getName())
.log(java.util.logging.Level.INFO,
"Can not initialize the default wsdl from {0}", "CustomSoapi-dlw-1.61.wsdl");
}
WSDL_LOCATION = url;
}

迁移到 Alfresco 5.0.a(2014 年 9 月 16 日)


我最近回到这个问题以解决它(我希望),但似乎仍然很难完成它。

这是我所做的和上下文:

  1. 我有一个基于版本 3.4.d 和 MySQL 5.5(在生产环境中运行)的 Alfresco 扩展(使用 maven 覆盖)

  2. 我安装了 Alfresco-5.0.a(在 Debian 64 位 wheezy,JDK7 上)并运行它:它有效

  3. 我从 $ALF/tomcat/webapps 中删除了原始的 alfresco.war(和 exploded war)并替换为我的扩展项目(Java 7、Maven 3.2.1)中构建的 alfresco.war,当然我更新了 Alfresco 依赖以满足 5.0.a 版本。

  4. 我将 Postgres 数据库保持原样

  5. 开始露天./alfresco.sh start

  6. 得到这个错误,尤其是这部分错误:

    { http://www.alfresco.org/model/content/1.0 }copiedfrom 尚未在数据字典中定义

完整的错误

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'copyService' defined in class path resource [alfresco/copy-services-context.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Association {http://www.alfresco.org/model/content/1.0}original of class {http://www.alfresco.org/model/content/1.0}copiedfrom has not been defined in the data dictionary
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 126 more
Caused by: java.lang.IllegalArgumentException: Association {http://www.alfresco.org/model/content/1.0}original of class **{http://www.alfresco.org/model/content/1.0}copiedfrom has not been defined in the data dictionary**
at org.alfresco.repo.policy.PolicyComponentImpl.bindAssociationBehaviour(PolicyComponentImpl.java:365)
at org.alfresco.repo.copy.CopyServiceImpl.init(CopyServiceImpl.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 133 more

最佳答案

针对较新的 Alfresco 类和 JDK 1.7 重新编译所有 Java 源代码。确切的那些让我逃避了,但是像 NodeService(我认为)这样的地方的一些关键方法签名已经改变了。

关于java - 从 3.4.d 迁移扩展到 4.2.e(和 5.0.a)后,Alfresco 无法加载 spring 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21733439/

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