XFile客户端调用JDK1.6+的webserivce时参数为null

Webservice的服务端用JDK1.6+自带的Webservice做的,客户端用的是XFile的webservice调用的,但是传过来的参数为NULL.

XFile的调用方式是:

String wsdl = "http://192.168.1.112:8088/testService?wsdl";

try {

Client client = new Client(new URL(wsdl));

String result = client.invoke("test", new Object[]{"hello"});

} catch (MainformedURLException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

服务端的代码如:

接口:

public interface ITest  {

public String test(String str);

}

实现类:

@WebService(name="test",  serviceName = "test")

@SOAPBinding(stype = SOAPBinding.Style.RPC)

public class TestImpl implements ITest {

@Override

public String test(String str) {

System.out.println(str);

}

}

解决办法:

在服务端的实现类上加上:@SOAPBinding(stype = SOAPBinding.Style.RPC)

代码变成:

@WebService(name="test",  serviceName = "test")

@SOAPBinding(stype = SOAPBinding.Style.RPC)

public class TestImpl implements ITest {

@Override

public String test(String str) {

System.out.println(str);

}

}

JDK1.6+自带的Webservice非常强大,而且不用我们额外引入jar包,而且应该将来会越来越强大,所以推荐大家使用。

时间: 2024-10-01 07:29:49

XFile客户端调用JDK1.6+的webserivce时参数为null的相关文章

webservice -- cxf客户端调用axis2服务端

背景: 有个项目, 需要由第三方提供用户信息, 实现用户同步操作, 对方给提供webservice接口(axis2实现)并也使用axis2作主客户端调用我方提供的webservice接口 起初, 由于项目使用了spring, 且spring可与cxf较好的集成, 所以也就选用了cxf, 可问题随之出现, 接口可以调用到, 接口的具体方法也可以调用到, 但是, 1. cxf作为客户端, 获取服务端返回值时均为null. 2. cxf作为服务端, 获取axis2客户端传来的参数时, 也均为null.

.net根据wsdl生成客户端调用服务返回null

由于做到的项目需要跟别的系统交互,我们这边提供wsdl文档给其他系统的开发人员,今天测试的时候,用C#来根据wsdl生成的客户端调用 Java的Web Server时,连最简单的返回string类型获取的值都是null,但是如果直接根据Web服务产生的wsdl来生成C#客户端,就能正常返回值.对 比了下原wsdl文档与Web服务产生的wsdl文档,发现之间没有什么区别. 后来把利用wsdl.exe和wsdl文档生成的客户端代码与直接在项目中引用Java的Web服务产生的代码对比一下.发现只有一个

用JDK自带的工具生成客户端调用Webservice的代码

JAVA下客户端调用Webservice代码简直是让人心生畏惧,今日尝试,做记录如下,参考网上的众多解决方案,下面这种方式是比较简单的. 在jdk的bin目录下有一个wsimport.exe的工具,使用该工具可以根据wsdl地址生成java的客户端代码. 常用命令如下: "D:\Program Files\Java\jdk1.8.0_05\bin\wsimport.exe" -keep -d d:\ -s d:\src -p com.map -verbose http://192.16

Java与WCF交互(一):Java客户端调用WCF服务

最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参考: 第一步:生成WCF服务 新建WCF解决方案,分别添加三个项目,HelloTimeService(类库),HelloTimehost(控制台程序),HelloTimeClient(控制台程序),项目结构如图:各个项目的主要代码:service: Host: Client: 编译通过后,测试Hos

C#创建webservice并发布,部署到iis,客户端调用

1.新建一个web空项目: 2.添加web服务: 3.在添加的web服务中添加一个求和的方法:(注:必须在方法上面添加 [WebMethod]才会在网页上显示出来,其中(description为方法的描述)) using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace WebServiceDemo { /// <s

solr 的客户端调用solrj 建索引+分页查询

一.利用SolrJ操作solr API 使用SolrJ操作Solr会比利用httpClient来操作Solr要简单.SolrJ是封装了httpClient方法,来操作solr的API的.SolrJ底层还是通过使用httpClient中的方法来完成Solr的操作. 需要的包如下: 1. apache-solr-solrj-3.5.0.jar 2. commons-httpclient-3.1.jar 3.slf4j-api-1.6.0.jar 4.commons-logging-1.1.jar 在

转载——Java与WCF交互(二):WCF客户端调用Java Web Service

在上篇< Java与WCF交互(一):Java客户端调用WCF服务>中,我介绍了自己如何使用axis2生成java客户端的悲惨经历.有同学问起使用什么协议,经初步验证,发现只有wsHttpBinding可行,而NetTcpBinding不可行,具体原因待查.昨晚回去重新测试WCF客户端调用Java Web Service,并将过程公布如下: 其实本不需要做web service,只是原来公开的经典的Web service像(http://soapinterop.java.sun.com/rou

GetCallbackEventReference(客户端调用服务器端)的用法)

GetCallbackEventReference函数在 .NET Framework 2.0 版中是新增的. MSDN解释:获取一个对客户端函数的引用:调用该函数时,将启动一个对服务器端事件的客户端回调.此重载方法的客户端函数包含指定的控件.参数.客户端脚本和上下文. 函数原型:public string GetCallbackEventReference ( Control control, string argument, string clientCallback, string con

转载——Java与WCF交互(一):Java客户端调用WCF服务

最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参考: 第一步:生成WCF服务 新建WCF解决方案,分别添加三个项目,HelloTimeService(类库),HelloTimehost(控制台程序),HelloTimeClient(控制台程序),项目结构如图:各个项目的主要代码:service: Host: Client: 编译通过后,测试Hos