- JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();这种方式
- 有博客上说这种动态调用的方式只能java调用java写的webservice接口?
- 这种动态调用方式是什么语言写的都能调用吗?
- 还有这种方法是不是比那种**wsimport**导入的方法简单的多?

各位大佬回答一下,JaxWsDynamicClientFactory这种客户端调用方法我用java来调c写的webservice接口能调吗?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 你知我知皆知 2024-08-10 17:46关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
是的,你可以使用Java来调用C编写的Webservice接口。
JaxWsDynamicClientFactory
是一个用于动态创建和管理WSDL(Web Services Description Language)客户端的类。关于你的问题,“这种方式有博客上说这种动态调用的方式只能java调用java写的webservice接口?”这个说法并不完全正确。在很多情况下,你确实可以使用Java调用C编写的Webservice接口。但是,这取决于具体的实现细节。例如,在某些情况下,可能需要通过JNI或其它方式将C代码转换为Java代码,并且才能进行调用。
至于“这种方法是不是比那种wsimport导入的方法简单的多?”这个问题,答案也是否定的。虽然
wsimport
是一种引入依赖项的方法,但它通常比直接使用JaxWsDynamicClientFactory
更复杂,因为它涉及到更多的配置和错误处理。以下是一个简单的示例,展示如何使用
JaxWsDynamicClientFactory
从C编写的Webservice接口调用:public class Main { public static void main(String[] args) throws Exception { // 创建一个JaxWsDynamicClientFactory实例 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); // 使用dcef实例创建一个动态生成的WSDL客户端 WsdlAddress wsdlAddress = dcf.create(new String[]{"http://example.com/some-service?wsdl"}); // 使用wsdlAddress创建一个新的WSDL服务对象 Service service = new Service(wsdlAddress); // 创建一个远程操作对象,表示要调用的服务中的某个方法 RemoteOperation remoteOperation = service.getRemoteOperation("MyService"); // 调用remoteOperation的方法 MyObject result = (MyObject) remoteOperation.call(new Object[]{}, new TypeToken<MyObject>() {}.getType()); System.out.println(result); } }
请注意,这段代码只是一个基本的例子,实际的调用可能会根据具体的需求有所不同。
解决 无用评论 打赏 举报