xfire中jdom报错问题

天煞的xfire,太多兼容问题了

前两天把xfire开发的接口发布到weblogic上,发现启动报错:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.typeMappingRegistry' defined in ServletContext resource [/WEB-INF/xfire-servlet.xml]: Invocation of init method failed; nested exception is java.lang.VerifyError: (class: org/codehaus/xfire/aegis/type/basic/ObjectType, method: writeSchema signature: (Lorg/jdom/Element;)V) Incompatible argument to function
Caused by: 
java.lang.VerifyError: (class: org/codehaus/xfire/aegis/type/basic/ObjectType, method: writeSchema signature: (Lorg/jdom/Element;)V) Incompatible argument to function
	at org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry.createDefaultMappings(DefaultTypeMappingRegistry.java:408)
	at org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry.createDefaultMappings(DefaultTypeMappingRegistry.java:311)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1237)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1203)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1167)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:376)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
	at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:82)
	at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1616)
	at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2761)
	at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)
	at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
	at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
	at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
	at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
	at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
	at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)
	at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
	at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
	at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154)
	at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
	at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:181)
	at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:358)
	at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:52)
	at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:186)
	at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
	at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
	at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
	at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
	at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
	at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
	at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

明显是jdom报的错,后来上xfire官网找到原因,xfire1.2.6对应的jdom版本是1.0,我在项目中有个jdom0.7版本的包,把0.7版本的包换成1.0的,启动没有报错,问题解决。

相关推荐