• web service 对外发布一个hello world接口(入门)


    1、写一个需要发布的接口

     1 package com.hb;
     2 
     3 import javax.jws.WebParam;
     4 import javax.jws.WebService;
     5 
     6 @WebService
     7 public interface IService {
     8 
     9     public void hello(@WebParam(name="username") String username);
    10 }

    备注: 一定要在接口名称上面用 @WebService 注解标示,参数@WebParam(name="username")只是说明在wsdl中指明参数的名字是username

    2、对定义接口的实现

     1 package com.hb;
     2 
     3 import java.util.Date;
     4 import javax.jws.WebParam;
     5 import javax.jws.WebService;
     6 
     7 @WebService(endpointInterface="com.hb.IService")
     8 public class ServiceImp implements IService{
     9 
    10     @Override
    11     public void hello(@WebParam(name = "username") String username) {
    12         System.out.println("hello " + username + " now is " + new Date());
    13     }
    14 
    15 }

    备注: 一定要在接口名称上面用 @WebService 注解标示 ,里面一定要标注它对外的接口,在后面的客户端调用会体现出来。

    3、发布对外提供的接口

     1 package com.hb;
     2 
     3 import javax.xml.ws.Endpoint;
     4 
     5 public class ServiceMain {
     6 
     7     public static void main(String[] args) {
     8         String address = "http://172.16.32.72:7777/hb";
     9         Endpoint.publish(address, new ServiceImp());
    10         System.out.println("发布消息成功");
    11     }
    12 
    13 }

    在地址栏中输入  http://172.16.29.89:7777/hb?wsdl,就会出现一系列xml格式的文档,这个就表示发布的成功。

     

    客户端

     1 package com.hb;
     2 
     3 import java.net.MalformedURLException;
     4 import java.net.URL;
     5 
     6 import javax.xml.namespace.QName;
     7 import javax.xml.ws.Service;
     8 
     9 public class Client {
    10 
    11     /**
    12      * @param args
    13      * @throws MalformedURLException 
    14      */
    15     public static void main(String[] args) throws MalformedURLException {
    16         // TODO Auto-generated method stub
    17         //创建访问wsdl服务地址的url
    18         URL url = new URL("http://172.16.32.72:7777/hb?wsdl");
    19         //通过Qname指明服务的具体信息
    20         /*
    21          * 第一个参数:接口的包名称,反序
    22          * 第二个参数:实现类名+Service
    23          * */
    24         QName qname = new QName("http://hb.com/","ServiceImpService");
    25         //创建服务
    26         Service service =  Service.create(url, qname);
    27         //实现接口
    28         IService iservice = service.getPort(IService.class);
    29         //以上服务有问题,依然依赖于IMyServie接口
    30         iservice.hello("huangbiao");
    31         
    32     }
    33 
    34 }

    备注:QName qname = new QName("http://hb.com/","ServiceImpService");两个参数分别对应上图中的targetNamespace 和 name。

    如果在实现对外提供的接口类中没有@WebService(endpointInterface="com.hb.IService"),则会提示不认识这个接口。

     上面全部操作不需要引入任何外部jar包。

  • 相关阅读:
    Winform读取app.config文件
    判断本机只能运行一个winform程序
    [导入][链接] Top 10: The best, worst... and craziest uses of RFID
    [导入][Tips] 在Ubuntu下限制本机使用的网络带宽
    [导入][一点一滴学英语] 20061205
    [导入][链接] Linux Distribution Chooser
    [导入][链接] Open Source Java Clustering
    [导入][链接] 关于Vista的关机选项
    [导入]Drip, Transfusion, Perfusion还是Infusion?关于一个词的翻译
    [导入][阅读] "Computer Programmer" vs. "Software Developer"
  • 原文地址:https://www.cnblogs.com/rabtor/p/6184148.html
Copyright © 2020-2023  润新知