zoukankan      html  css  js  c++  java
  • WebService(三)

    JAX-WS简单使用示例:

    1.服务端

     1 package com.rong.service;
     2 
     3 import javax.jws.WebMethod;
     4 import javax.jws.WebParam;
     5 import javax.jws.WebResult;
     6 import javax.jws.WebService;
     7 
     8 @WebService
     9 public interface UserService {
    10     //private私有方法不会被发布,只会发布public方法
    11     //exclude默认为false,即发布;若为true,即不发布
    12     @WebMethod(operationName="getMyAge",exclude=true)
    13     public int getAge();
    14     public @WebResult(name="ResultType")String changeName(@WebParam(name="NameType")String name);
    15 }
     1 package com.rong.service;
     2 
     3 import javax.jws.WebService;
     4 
     5 //@WebService
     6 //通过注解修改wsdl文件信息
     7 @WebService(targetNamespace="http://service.rjl.com/",
     8             serviceName="UserService",
     9             portName="bindingname",
    10             name="portname",
    11             //UserServiceImpl可能实现多个接口,注解endpointInterface用于
    12             //只发布哪个接口服务,并且要在那个接口中添加@WebService
    13             endpointInterface="com.rong.service.UserService")
    14 public class UserServiceImpl implements UserService {
    15 
    16     @Override
    17     public int getAge() {
    18         return 0;
    19     }
    20 
    21     @Override
    22     public String changeName(String name) {
    23         return name.toUpperCase();
    24     }
    25 
    26 }
     1 package com.rong.test;
     2 
     3 import javax.xml.ws.Endpoint;
     4 
     5 import com.rong.service.UserServiceImpl;
     6 
     7 public class Test {
     8 
     9     public static void main(String[] args) {
    10         //第一个参数是发布的URL
    11         //第二个参数是服务接口的实现类对象
    12         Endpoint.publish("http://127.0.0.1:8080/myservice", new UserServiceImpl());
    13     }
    14 
    15 }

    运行main方法

    浏览器输入地址:http://127.0.0.1:8080/myservice?wsdl访问wsdl检验是否开启服务

    2.客户端

    eclipse创建项目,在项目路径下F:workplacemyclientsrc

    运行cmd,执行指令生成客户端代码(可用工具生成)

    然后在生成的代码文件夹中删除字节码文件.class文件,只保留java文件

    返回eclipse开发工具的客户端项目,刷新项目

    测试:

     1 package com.rong.test;
     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 import com.rjl.service.UserService;
    10 
    11 
    12 public class Test {
    13 
    14     public static void main(String[] args) throws MalformedURLException {
    15         
    16         // 客户端使用服务方式一:见上篇
    17         //客户端使用服务方式二
    18         URL url=new URL("http://127.0.0.1:8080/myservice?wsdl");
    19         //第一个参数是服务的URI,服务的命名空间名字
    20         //第二个参数是WSDL发布的服务名
    21         QName serviceName=new QName("http://service.rjl.com/", "UserService");
    22         Service service = Service.create(url, serviceName);
    23         UserService userService = service.getPort(UserService.class);
    24         System.out.println(userService.changeName("rjl and kobe!"));
    25     }
    26 }

  • 相关阅读:
    python 端口扫描仪
    [ruby on rails] 深入(1) ROR的一次request的响应过程
    [ruby on rails] 跟我学之(10)数据输入验证
    [ruby on rails] 跟我学之(9)删除数据
    [ruby on rails] 跟我学之(8)修改数据
    [ruby on rails] 跟我学之(7)创建数据
    BZOJ 2301 [HAOI2011]Problem b (分块 + 莫比乌斯反演)
    BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)
    BZOJ 1497 [NOI2006]最大获利 (最小割)
    BZOJ [FJOI2007]轮状病毒 (找规律)
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/8150137.html
Copyright © 2011-2022 走看看