博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebService学习笔记系列(四)
阅读量:4486 次
发布时间:2019-06-08

本文共 1526 字,大约阅读时间需要 5 分钟。

今天主要来看看服务端的编写及发布。

服务端的编写主要包括三个步骤:
1.编写一个接口,即SEI(server endpoint interface)
2.编写接口的实现类,即SIB (server implements bean)
3.发布服务

在接口和实现类上都要用注解说明情况。

接口

@WebServicepublic interface IMyServer {    public int add(int a,int b);    public int minus(int a,int b);}

实现类:

@WebService(endpointInterface="server.lenve.IMyServer")public class MyServerImpl implements IMyServer {
@Override public int add(int a, int b) { System.out.println(a+"+"+b+"="+(a+b)); return a+b; } @Override public int minus(int a, int b) { System.out.println(a+"-"+b+"="+(a-b)); return a-b; }}

发布:

public class PublishMyServer {    public static void main(String[] args) {        String address = "http://localhost:9999/ns";        Endpoint.publish(address, new MyServerImpl());    }}

通过wsimport拿到相关类,

这里写图片描述

将这些类拷贝到客户端,然后在客户端调用:

这里写图片描述

客户端调用:

public class MyFirstClient {    public static void main(String[] args) {            IMyServer myServerImpl = new MyServerImplService()                    .getMyServerImplPort();            System.out.println(myServerImpl.add(3, 4)+"------");    }}

当我们把网上的东西导成Java文件后,有些参数变得不是那么讨人喜欢,比如,所有函数的参数命名均为arg0,arg1….,这样让我们很难识别,该怎么办呢?

那就是在服务端的接口中来做一个简单处理:
在每个参数前加上@WebParam注解,我们再尝试在方法前加上@WebResult注解,看代码:

@WebServicepublic interface IMyServer {
@WebResult(name="addResult") public int add(@WebParam(name="a")int a,@WebParam(name="b")int b); public int minus(int a,int b);}

add方法添加了注解,minus方法没有添加注解,我们看看生成的代码有什么不同?

这里写图片描述

这里写图片描述

参数名变了吧?再看看返回有什么不同:

这里写图片描述

这里写图片描述

转载于:https://www.cnblogs.com/lenve/p/4517990.html

你可能感兴趣的文章
把一个SVN项目的目录结构 导入到另外一个空白的SVN项目里
查看>>
Android之Adapter用法总结-(转)
查看>>
总结列表显示ListView知识点
查看>>
android 教程实例系列
查看>>
lucene笔记
查看>>
tomcat无法正常shutdown
查看>>
zookeeper + dubbo 搭建
查看>>
根据前序遍历和中序遍历求出二叉树并打印
查看>>
作业4
查看>>
LeetCode "Divide Two Integers"
查看>>
mcs51 串口通信 单片机发 pc收
查看>>
MySQL ACID及四种隔离级别的解释
查看>>
text-align 属性,输入框数字向右靠
查看>>
debian分区方案(就这个看着靠谱点)转
查看>>
虫师Selenium2+Python_11、自动化测试项目实战
查看>>
模拟竖式除法
查看>>
java调用dll
查看>>
图形界面组件实验的一点总结
查看>>
django 1.11.16之环境搭建
查看>>
15.SpringMVC和Spring上下文关系(为什么SpringMVC可以调用到Spring)
查看>>