java客户端调用c#的webservice服务

  此处使用到了CXF框架,可以使用以下坐标从maven仓库中获取相关jar包:

1 <dependency>
2   <groupId>org.apache.cxf</groupId>
3   <artifactId>apache-cxf</artifactId>
4   <version>3.0.3</version>
5   <type>pom</type>
6 </dependency>

  自定义一个ServerProxyer类,提供调用webservice的方法

复制代码
package com.component;

import com.component.util.WebServicePropertyFileUtil;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;


/**
 * desc:webservice服务端在本地的代理类
 */
public class ServerProxyer {

    private static String wsdlUrl ;
    private static Client client;

    static{
        //获取wsdl地址
        WebServicePropertyFileUtil.init_Custom("webservice");
        wsdlUrl = WebServicePropertyFileUtil.get("wsdlUrl");
        //创建客户端实例
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        client = dcf.createClient(wsdlUrl);
    }

    /**
     * 调用webservice服务端方法
     * @param methodName 方法名
     * @param parameters 参数
     * @return
     */
    public static Object[] invoke(String methodName,String... parameters){
        Object[] res = null;
        try {
            res = client.invoke(methodName,parameters);
            for(Object obj : res){
                System.out.println(obj);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  res;
    }

    public static void main(String[] args){
        invoke("SendMessages","haijen","您有一条新待办:","关于《》的通知");
    }
}
复制代码

   注意事项:可能会出现cxf依赖的第三方jar和你本地项目已经使用的jar有冲突的情况,比如ehcache.jar,如果有冲突,需要对冲突的jar进行处理。

posted @   AI粉嫩特攻队  阅读(2381)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示