webService客户端的wsdlLocation可以设置成可变的吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webService客户端的wsdlLocation可以设置成可变的吗相关的知识,希望对你有一定的参考价值。

参考技术A wsdlLocation不能是相对的,必须一一对应,你可以将所有wsdl实现后,然后通过代码封装来动态调用其中的方法。因为wsdl是服务器提供的,是不允许客户端更改的。
因WebServiceRef中的wsdlLocation设定的时候是在类外,还可以配置可变的,那么都可以配置出去。Properties/xml都可以。

java cxf动态调用服务端的webservices方法

我用wsdl2java命令生成了webservice代码,通过cxf调用ws的方法,但是现在项目有这样的需求,服务端的ip地址是未知的,怎么样才能实现不用改代码也能调用ws的方法

WebService实现
1、 整个项目使用CXF来实现,在实现的过程中,在MyEclipse中对CXF下lib中的所有jar文件通过引入外部包来处理。
2、 在MyEclipse6.5中可以实现服务器端和客户端,但是客户端在使用wsdl进行动态调用的过程中总是报错,最后使用MyEclipse9.0实现了进行动态调用的实现。其中发生的错误如下:
(1)Exception in thread "main" java.lang.LinkageError: 正在从引导类加载器加载 JAXB 2.1 API, 但此 RI (来自jar:file:/D:/CXF/lib/jaxb-impl-2.2.5.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) 需要 2.2 API。请使用授权目录机制将 jaxb-api.jar 放在引导类加载器中。(请参阅 http://java.sun.com/j2se/1.6.0/docs/guide/standards/)
解决办法:
通过删除引入包中的jaxb-impl-2.2.5.jar文件可以解决。
(2)java.lang.IllegalArgumentException: Can not set final com.sun.tools.internal.xjc.reader.internalizer.InternalizationLogic field
参考技术A 调用时,把wsdlURL地址改掉不行了

以上是关于webService客户端的wsdlLocation可以设置成可变的吗的主要内容,如果未能解决你的问题,请参考以下文章

java cxf动态调用服务端的webservices方法

WSDL SOAP Webservice Java 客户端的错误 415

SpringBoot整合cxf发布webService和客户端的调用

webService客户端的wsdlLocation可以设置成可变的吗

如何用axis的WSDL2Java生成webservice接口的客户端的java代码?

webservice技术--服务器端