Java调用C#的web Service
本文编码环境:Eclipse SDK
使用插件。
首先新建一个java项目XFireProject,然后依次选择菜单File->New->Other ,选择XFire文件夹下的Code generation from WSDL document,打开代码生成向导
假设你要调用的webservice的名字是HelloWorld,这个有一个WebMethod叫SayHey(string name).那你找一下自动生产的那些类,里面应该有个叫HelloWorldClient的.下面的代码演示了如何使用:
HelloWorldClient serviceClient = new HelloWorldClient();
HelloWorldSoap soap= serviceClient.getHelloWorldSoap();
String result=soap.SayHey("notus");
总的来说,就是xfire会用你提供的wsdl地址生成类,而和vs不同的是,你需要两步才能调用到你的webmethod.
如果你安装上面的步骤一步一步来了,那很好,最后你注定没有办法运行成功-_- 因为,因为这个毕竟不是真的vs,在运行前,你需要做一个设置.
从你的项目的右键菜单里调出Properties配置窗口,选中左面一栏中的XFire项,右面会列出所有与XFire运行有关的类库,选中如图所示的类库,这样就万事大吉了。
WSDL的地址栏填入http://localhost:8080/WSProject/services/HelloService?wsdl,Output directory栏中点浏览按钮,选择我们刚才新建的项目XFireProject,这两项是必填的。可选项中,package一栏可以选已经存在的包名,如果不填这一项,代码生成器会在wsdl目标命名空间的基础上创建一个。
完成后,可以看到项目中多了XFire类库,还有package下面的生成的一些类。此时要保证IDE的Tomcat服务器是打开的。
此时,在调用服务之前,还有一个重要的步骤,从XFireProject项目的右键菜单里调出Properties配置窗口,选中左面一栏中的XFire项,右面会列出所有与XFire运行有关的类库,按图三中所示的,选中一些类库,这些类库在调用本服务时是必须的。
所有的配置都已经完成,最后就是编写代码完成调用。代码如下:
package wsClient;
import hao.HelloServiceClient;
import hao.HelloServicePortType;
public class Invoke {
/** *//**
* 这个方法调用web服务并返回服务执行的结果
*架构师kcvg合并段
* @param yourName
* @return
*/
public static String invokeServiceNow(String yourName)
{
HelloServiceClient service=new HelloServiceClient();
HelloServicePortType port=service.getHelloServiceHttpPort();
return port.sayHello(yourName);
}
/** *//**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String MyName="Kcvg";
System.out.println(Invoke.invokeServiceNow(MyName));
}
}
最后程序运行得到的输出结果是“Kcvg,你好!”。
注意:在运行调用程序时,Tomcat也必须是打开的。