Java调用C#的web Service

本文编码环境:Eclipse SDK 3.2.2Tomcat6XFire-1.2.6。这里我用了个插件,需要的朋友自己去看,这个插件的使用你会发现JAVA调用几乎和C#的VS一样简单了。
使用插件。
    首先新建一个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?wsdlOutput directory栏中点浏览按钮,选择我们刚才新建的项目XFireProject,这两项是必填的。可选项中,package一栏可以选已经存在的包名,如果不填这一项,代码生成器会在wsdl目标命名空间的基础上创建一个。
    完成后,可以看到项目中多了XFire类库,还有package下面的生成的一些类。此时要保证IDETomcat服务器是打开的。
    此时,在调用服务之前,还有一个重要的步骤,从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也必须是打开的。

posted on 2009-07-23 11:46  seaven  阅读(1653)  评论(0编辑  收藏  举报

导航