• 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 }

  • 相关阅读:
    实习项目1.
    try catch finally的用法
    asp.net 验证控件
    数据库操作语言
    webform Response的一些成员
    jQuery
    C#@的用法
    SQL分页查询
    抽象类与接口的区别
    抽象类与接口
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/8150137.html
Copyright © 2020-2023  润新知