c#调用java的webservice方法

本文档主要记录c#去调用java webservice的步骤

一、

使用loushang平台,先生成wsdl再生成wsdd

文件目录:

123

 

 

 

 

 

 

 

 

wsdd的文件如下:

   <service name="CheckTask" provider="java:RPC" style="wrapped" use="literal">
      <parameter name="wsdlTargetNamespace" value=">
      <parameter name="wsdlServiceElement" value="CheckTaskService"/>
      <parameter name="schemaQualified" value="
>
      <parameter name="wsdlServicePort" value="CheckTask"/>
      <parameter name="className" value="com.wms.webservices.checktask.CheckTaskSoapBindingSkeleton"/>
      <parameter name="wsdlPortType" value="CheckTask"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <parameter name="allowedMethods" value="*"/>

      <typeMapping
        xmlns:ns="

http://vo.checktask.webservices.wms.com"
        qname="ns:CheckItem"
        type="java:com.wms.webservices.checktask.vo.CheckItem"
        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
        encodingStyle=""
      />
  </service>

ps:com.wms.webservices.checktask.vo.CheckItem 是实体

这样java的服务端就搭建好了。

访问地址:http://localhost:8080/test/services/CheckTask?wsdl

可用soapUI工具测试,wsdl是否可用。

二、

c#项目的Web References右击添加新web 引用

http://localhost:8080/test/services/CheckTask?wsdl填入,起个引用名字CheckTask,

使用这个引用创建对象,调用服务的query方法

 Checktask.CheckTaskService tasklist = new WMS_MOBILE.Checktask.CheckTaskService();

            if ("".Equals(tasklist.query()) || tasklist.query() == null)
            {
                return clientcode;
            }
            Checktask.CheckItem[] items = tasklist.query();

这样就在c#端成功调用了。

 

三、总结

c#调java的webservice可以传递实体和实体数组以及其他类型,在起初因为实体没哟序列化和反序列化话,没有传递成功。走了很多弯路,还以为c#和java直接有代理类。

webservice走的是SOAP协议、http协议。PC版本的WEbservice客户端库非常丰富,例如Axis2,CXF等,

 

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值