解决NoSuchMethodError: org.apache.ws.commons.schema.XmlSchemaForm.schemaValueOf(Ljava/lang/String;)

这个问题困扰我很久了,今天终于解决了,必须记录一下。

项目使用axis2发布WebService,启动后报错如下:

The WFService service, which is not valid, caused java.lang.NoSuchMethodError: org.apache.ws.commons.schema.XmlSchemaForm.schemaValueOf(Ljava/lang/String;)Lorg/apache/ws/commons/schema/XmlSchemaForm;

此时WebService是不能访问的。但是不影响项目的启动。

提示说org.apache.ws.commons.schema.XmlSchemaForm类里没有schemaValueOf方法,我进去一看还真没有,此时进入的jar是xmlschema-1.4.7.jar,很明显这个是有问题的,我的axis2版本是1.7.7,上网查看发现应该用高版本比如xmlschema-core-2.2.1.jar才对,我已经有了这个jar了,我进去XmlSchemaForm类里真的有schemaValueOf方法,所以是jar冲突。xmlschema-1.4.7.jar是我们框架里一个jar的依赖jar,所以应该排除这个jar才行,这样系统就会使用xmlschema-core-2.2.1.jar了。

排除jar的方法,通过依赖关系找到哪个jar依赖了这个xmlschema-1.4.7.jar,然后用

			<exclusions>
				<exclusion>
					<groupId>org.apache.ws.commons.schema</groupId>
					<artifactId>xmlschema</artifactId>
				</exclusion>
			</exclusions>

把这个jar排除了就好了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值