当前位置: 首页 > 工具软件 > Schema.org > 使用案例 >

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

宋伟泽
2023-12-01

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

项目使用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排除了就好了。

 类似资料: