有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

这是我的背景:

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

我所做的只是从3.4升级Alfresco版本。d4.2。e,以下是我所做的:

  1. 安装在露天-4.2。磁盘上某处的社区分布
  2. 在Eclipse上,创建了一个以CATALINA_为基础的Tomcat服务器 分发TOMCAT
  3. 我遵循文档,以便能够部署扩展 而不是原来的露天。战争(实际从 $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

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

smsManagerService代码:

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版的Alfresco扩展(使用maven覆盖)。d和MySQL 5.5(在生产中运行)

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

  3. 我把原来的露天建筑移走了。战争(以及爆发的战争)从$ALF/tomcat/webapps开始,取而代之的是一个内置的露天平台。war来自我的扩展项目(Java7,Maven 3.2.1),当然,我更新了Alfresco依赖项以满足5.0的要求。一个版本

  4. 我保留了Postgres DB的原样

  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

共 (2) 个答案

  1. # 1 楼答案

    根据更新的Alfresco类和JDK1.7重新编译所有Java源代码。我想不出确切的方法,但像NodeService这样的地方的一些关键方法签名(我想)已经改变了

  2. # 2 楼答案

    验证spring的版本是否已更改