项目中新增加了一个用Java 调用 .Net Webservice的Bundle,出现了下面的错误日志:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roModelServiceLocatorAdaptor' defined in URL [bundleentry://185.fwk1784707303/META-INF/spring/spring-config.xml]: Initialization of bean failed; nested exception is java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "javax/xml/namespace/QName" at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) 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.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:62) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:327) at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:87) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:292)
原因:
引起这个问题的原因只是猜测,在Classpath中有多个javax.xml.namespace.QName,OSGi在loader时用了不同的版本. OSGi的坑太多,具体原因不清楚.
解决方法:
Use construction method of injection for **LocatorAdaptor,将
<bean id="roModelServiceLocatorAdaptor" class="com.moodys.loan.mat.adaptor.ROModelServiceLocatorAdaptor"> <property name="userService" ref="userService" /> </bean>
修改成:
<bean id="roModelServiceLocatorAdaptor" class="com.moodys.loan.mat.adaptor.ROModelServiceLocatorAdaptor"> <constructor-arg ref="userService" /> </bean>
相关推荐
NULL 博文链接:https://utopialxw.iteye.com/blog/1138133
java.lang.LinkageError 链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。 java.lang.NoClassDefFoundError 未...
启动Tomcat时报错:Caused by: java.lang.LinkageError: loader constraints violated when linking javax/el/ExpressionFactory class 说明:原因是juel.jar, juel-engine.jar, juel-impl.jar包和Tomcat6.0中的el-...
el-api,java jar包,el表达式所需要的jar包。java.lang.LinkageError: loader constraints violated when linking javax/el/ExpressionFactory class;jar包冲突
java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file://build/web/WEB-INF/lib/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class...
Burpsuite永久使用版,没有使用限制,V1.7.26版本,http抓包工具。
javax.servlet.ServletException: java.lang.LinkageError
MiMa可以报告二进制修改,这些修改可能导致JVM在运行时抛出java.lang.LinkageError (或其子类型之一,例如AbstractMethodError )。 链接错误通常是类/成员签名修改的结果。 MiMa比较了两个已发布库的所有类文件,...
下载本包解压后放在%TOMCAT_HOME%和%JAVA_HOME%\lib下(jar包必须在endorsed 文件夹下)
日常使用 Java 开发,常常会遇到包依赖冲突的问题,尤其当工程应用变得臃肿庞大,包冲突的问题也会变得更加棘手,导致各种各样的报错,例如LinkageError, NoSuchMethodError等;实际开发中,可以采用多种方法来解决...
SOFAArk 最初的场景是解决 Java 开发常常会遇到的包依赖冲突的问题,尤其当工程应用变得臃肿庞大,包冲突的问题也会变得更加棘手,导致各种各样的报错,例如LinkageError, NoSuchMethodError等。实际开发中,可以...
背景日常使用 Java 开发,常常会遇到包依赖冲突的问题,尤其当工程应用变得臃肿庞大,包冲突的问题也会变得更加棘手,导致各种各样的报错,例如LinkageError, NoSuchMethodError等;实际开发中,可以采用多种方法来...