WebService客户/服务器端实现

  三步实现简单的Java WebService服务器!

1.首现编写实现服务的类(注意@WebService标记):
  可以看到,我们的WebService将提供两个方法的服务;

package org.netjava.web;
import javax.jws.WebService;
/**
 *简单web服务的实现
 *@author:NetJava.cn
 */
//注释说明这是个webService实现
@WebService
public class  ServiceImp {
 
//以下为这个Service的两个测试方法:
   public String getName(String srcName) {
    count++;
       return count+"you input Name:"+srcName;
    }

   public int getAge(int age) {
    count++;
         return  count+10;
    }

  private static int count=0;
}


2.编写一个工具发布这个接口,我们将它发布到http://localhost:9090/netjava/test 这个地址:

package org.netjava.web;
import javax.xml.ws.Endpoint;
/**
 *发布服务web服务
 *@author:NetJava.cn
 */
 public class PublicService{
 
  public static void main(String[] args) {
         //将ServiceImp服务发布到指定地址:
      Endpoint.publish("http://localhost:9090/netjava/test",new ServiceImp());
     
       }
 

3.OK,启动服务!
    先编译:    javac -d . *.java
    执行wsgen导出服务:wsgen   com.netjava.webservice.EchoNameService
    启动! java  com.netjava.webservice.PublicService

 现在,在IE中打开http://localhost:9090/netjava/test?wsdl 看到了么:)

        

二,客户端:

1.我们新建一个client目录存放执行wsimport 导出客户端代码,为了便于编程,我们导出源码
      wsimport -d client -s client  http://localhost:9090/netjava/test?wsdl
 OK, 成功执行后到client下的面,我们可以看到,生成了跟服务器端包结构相同的层次文件,在org/netjava/web下面在生成的客户端的类文件和源文件,我们关注的只有两个文件:ServiceImp.java和ServiceImpService.java,这两个文件是我们客户端编程实现要用到的,我们先"囫囵吞枣"的了解一下这两个类:ServiceImp可以认为就是我们服务器端的ServiceImp类,它有两个同样的方法---服务器导出的;ServiceImpService,注意,后面多个Service,这是工具自动加上的,意思我猜是说"这是客户端的服务工具",我们的客户端代码这样编写:
(当然,这个类一定要放到client目录下),
     
import  org.netjava.web.*;
  /**
  *示例客户端,
  *@author:NetJava.cn
  */
  public class NJClient{
  public static void main(String args[]){
  ServiceImpService gp=new ServiceImpService();
  ServiceImp client=gp.getServiceImpPort();
  String resultName=client.getName("  简单WebService");
    int resultAge=client.getAge(100);
    System.out.println("resultName: "+resultName+" resultAge:"+resultAge);
     }
}

编译: javac -cp . NJClient.java
运行: java -cp . NJClient

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值