cxf调用c#的webservice

java调用c#的webservice,如今已经測试通过。并且用到了项目中。

如今把实现方式和遇到的问题分享给大家。详细源代码例如以下:


 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        String url = "http://10.1.5.83/Ciming.Service4JuDing/CM4APP.asmx?WSDL";
        org.apache.cxf.endpoint.Client client = dcf.createClient(url);
        // /GetSingleCheckModuleStatus 为接口中定义的方法名称
        String methodName = "GetSingleCheckModuleStatus";
        // 接口中定义參数顺序
        Object[] paramArr = { "第一參数", "第二參数", "第三參数" };

        Object[] objects = client.invoke(methodName, paramArr);
        // 输出调用结果
        System.out.println(objects[0].toString());

项目中有依赖的jar包(最精简的jar包了,我一个个试的,哪个类找不到。我才把jar包加进去的),以下是项目demo的源代码下载地址:

http://download.csdn.net/download/zl544434558/8840361



以下说说当中遇到的问题及解决方式:

我依照这篇文章(http://blog.csdn.net/zl544434558/article/details/44855989)的步骤调用webservice一直报例如以下错误:

Caused by: org.apache.cxf.binding.soap.SoapFault: The request element http://tempuri.org/‘> was not recognized.

问题产生的原因是:和接口组进行确认后,发现之前文章调用c#并非webservice,而是调用的页面值,相似java中的response返回json值。

解决方式是:把解决方式替换成这篇博客的解决方法。

另外说一个怪事:在c#中。方法的命名方式为首字母大写,而用eclipse中的webservice client 生成的文件默认方法名为小写,所以导致了上面的错误,可是把c#中的方法名改成小写。尽管能正确调通,可是c#返回的有值,而java这边接到的是null。

原因眼下未知。

可是用这篇博客的解决方式不会产生相似的问题。

时间: 2024-10-19 08:30:02

cxf调用c#的webservice的相关文章

CXF 调用C#.net的WebService

原文链接:http://hi.baidu.com/pengfeiiw/blog/item/3203e29065aa3a8aa977a4d0.html 1.编写C#.net的WebService Service.cs using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols; [WebService(Namespace = "http://localhost:9000/we

CXF 调用 .net webservice

1.webservice 接口调用可参考jdk安装bin 下wsimport.exe. 2.本实例是CXF调用 .net webservice,且.net webservice接口参数是一个对象. 3.本实例调用的是文件上传,具体参数可忽略 package com.jr.entity.web; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.i

WebService CXF调用方式《三》

问题?WebService CXF调用方式<三>,CXF工作原理和调用方式 一.CXF是什么? Apache CXF是一个开源的,全功能的,容易使用的Web服务框架.CXF是两个项目的结合:由IONA技术公司(现在是Progress的一部分)开发的Celtix和由Codehaus主持的团队开发的XFire,合并是由人们在在Apache软件基金会共同完成的.CXF的名字来源于"Celtix"和"XFire"的首字母. 二.CXF有什么作用? Apache

CXF整合Spring开发WebService

刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开环境变量配置窗口,点击新建,新建%CXF_HOME%变量,值为你下载的cxf所在的目录,我的是D:\tools\apache-cxf-3.1.0 2.在Path变量中新加一句%CXF_HOME%\lib,注意要和已有的path变量用;隔开 3.在CLASSPATH中新加一句%CXF_HOME%\li

使用CXF做简单的WebService例子

使用Maven搭建项目测试简单的CXF实例 Server: pom.xml: <!-- begin CXF Server --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.1</version> </dependency> <

delphi 调用百度地图WEBSERVICE转换GPS坐标

百度地图的API说明 使用方法 第一步,申请密钥(ak),作为访问服务的依据: 第二步,按照请求参数说明拼写发送http请求的url,注意需使用第一步申请的ak: 第三步,接收返回的数据(json或者xml格式). 注:本接口支持回调. 服务地址 http://api.map.baidu.com/geoconv/v1/? 组成说明: 域名:http://api.map.baidu.com 服务名:geoconv 服务版本号:v1 服务参数说明 参数 含义 取值范围 是否必须 默认取值 coord

关于安卓调用C#的WebService上传图片问题(不使用ksoap2)

============问题描述============ 小弟初学安卓开发.最近需要做一个图片上传的功能. 我是用java开发安卓,调用C#的WebService.在网上找到一大堆资料,几乎全部是用ksoap2包的. 请注意,我想做的是不用ksoap包的. 我现在的方法是从android端用读取到要上传的图片,用Base64编码成字节流的字符串,通过调用webservice把该字符串作为参数传到服务器端,服务端解码该字符串,最后保存到相应的路径下.整个上传过程的关键就是以字节流的字符串进行数据传

delphi调用 java 的 WebService服务端.

// InvRegistry.RegisterInvokeOptions(TypeInfo(ModelADServicePortType), ioLiteral); InvRegistry.RegisterInvokeOptions(TypeInfo(ModelADServicePortType), ioDocument); delphi调用 java 的 WebService服务端.,布布扣,bubuko.com

学习调用第三方的WebService服务

互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的应用中显示,下面就以查询国内手机号码归属地为例进行说明. 首先安利一个网站,提供了很多实用的WebService服务: http://www.webxml.com.cn/zh_cn/index.aspx 从首页可以看到很多常用的服务,这里我们选择 国内手机号码归属地查询 点击进入我们可以看到该服务提供的两个API 查看WebService的wsdl描述信息,点击服务