WebService_HelloWorld

“HelloWorld” 出现

从来没有接触过WebService,今天下班没什么事情,看看了WebService的HelloWorld。

 

下载了必须的jar包之后,就开始了我的HelloWorld之旅。

编写SOAP的服务类:

public class HelloService {

   public String sayHello(String username){

      return "Hello:"+username;

   }

}

创建\删除SOAP服务发布的描述文件:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"

            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

 <service name="urn:helloservice" provider="java:RPC">

    <parameter names="className" value="com.tan.web.service.HelloService"/>

    <parameter name="allowedMethods" value="sayHello"/>

 </service>

</deployment>

发布SOAP服务:

1、基于命令行:

要想成功运行命令行,需要在classpath中加入mail.jar,activation.jar,xerces.jar。

命令行:java org.apache.axis.client.AdminClient deploy.wsdd

2、基于JWS(java Web Service)

把之前的HelloService.java改名为HelloService.jws,然后把该文件加入项目根目录下即可。

创建和运行SOAP服务客户程序

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

 

public class HelloClient {

   public static void main(String[] args) {

      try {

         String name="Guest";

         if(args.length!=0) name=args[0];

         String endpoint="http://127.0.0.1:9099/axis/services/helloservice";

         Service service=new Service();

         Call call=(Call)service.createCall();

         call.setTargetEndpointAddress(new java.net.URL(endpoint));

         call.setOperationName(new QName("urn:helloservice","sayHello"));

         String ret=(String) call.invoke(new Object[]{name});

         System.out.println(ret);

      } catch (Exception e) {

         // TODO Auto-generated catch block

         e.printStackTrace();

      }

   }

}

 

打印结果应该是:hello:Guest

因为SOAP是建立在HTTP协议之上,所以可以在浏览器上访问SOAP服务。

如:http://127.0.0.1:9099/axis/HelloService.jws?method=sayHello&parameter=world

也会显示:hello:worlds

posted @ 2012-02-13 22:18  lifer  阅读(747)  评论(0编辑  收藏  举报
程序员看世界