JAVA 1.6 之后,自带的JAX-WS API,这使得我们可以很方便的开发一个基于Java的WebService服务。

基于JAVA的WebService 服务

1、创建服务端WebService服务接口

package com.st.services;

import javax.jws.WebService;

import javax.jws.soap.SOAPBinding;

import javax.jws.soap.SOAPBinding.Style;

import javax.jws.soap.SOAPBinding.Use;

@WebService(serviceName="calculator",targetNamespace="com.st.services")

@SOAPBinding(style=Style.RPC,use=Use.LITERAL)

public class CalculatorService {

public int sum(int a,int b){

return a+b ;

}

}

@WebService

此注示用来标明此java类为某个WebService的实现类或者标明此java接口定义了某个WebService的接口。

@WebService有六个参数可以用来配置这个WebService的定义:

1、endpointInterface:指向一个定义此WebService抽象定义接口的完整类路(如果没有定义接口,直接写的实现类,则该参数不需要)

2、name:WebService名;默认的port名为"实现类名+Port",binding名为"实现类名+PortBinding",通过指定name的值来替换 实现类名。

3、portName:指定port名,可以完成替换默认port名,或由上面的"name"指定的port名。

4、targetNamespace:指定targetNamespace值,默认的值为 "http://包名/",可以通过此变量指定一个自定义的targetNamespace值。(注:如果分别定义和接口和实现,则他们有各自的targetNamespace)

5、serviceName:指定service名

6、wsdlLocation:指向一个预定义的wsdl的文件,替代自动生成的wsdl文件。

!如果不想定义的话,可以直接写一个@WebService,其他的属性用默认的。

@WebMethod

action:指定此方法对应的action

exclude:true --表示此方法包含在web服务中;false表示排除此方法

operationName:指定方法对应的operation的名字。

!如果你对你的WebService方法没有啥特殊要求的话,该参数可以不写,那将会使你的所有的方法发布出去。

2、发布服务

public static void main(String[] args) {

Endpoint.publish("http://localhost:8088/calculator",

new CalculatorService());

}

这里publish方法需要两个参数:

address:服务对外暴露的用于调用服务的地址

implementor:服务的实现对象

启动这个Server类,就可以访问服务了。要测试服务有没有启动,可以输入http://localhost:8088/calculator?wsdl,如果一切正常,就可以看到一个wsdl定义内容,表示服务已经成功启动。

3、客户端程序的调用

客户端的代码建议使用wsimport 去生成(前提:在你的电脑上已经配置了JDK的环境变量)

直接在CMD中运行:

wsimport -keep -p com.st.client http://localhost:8088/calculator?wsdl

-p :定义生成包的包名(可以不写)

然后将生成的java类放到项目中进行调用

!使用java发布WebService,默认是发布到了JDK的WEB容器中了,但在具体的项目中,更多的是有独立WEB容器(eg:Tomcat),所有这里只是对此做个简单的介绍。

jax java_JAX-WS 学习一:基于java的最简单的WebService服务相关推荐

  1. Java实现的简单的WebService服务发布和Client调用例子

    做大作业,要求用到WS,在网上看了看,自己写了一个,很简单的服务发布和Client调用例子. WebService有很多实现的方式,但是原理基本都是一样的,都是基于SOA的三角模型,所以重点在于理解了 ...

  2. 基于Java毕业设计疫情下居家隔离服务系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计疫情下居家隔离服务系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计疫情下居家隔离服务系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B ...

  3. 基于Java毕业设计郑工社团交流服务信息平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计郑工社团交流服务信息平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计郑工社团交流服务信息平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构 ...

  4. 基于消息中间件RabbitMQ实现简单的RPC服务

    转载自  基于消息中间件RabbitMQ实现简单的RPC服务 RPC(Remote Procedure Call,远程过程调用),是一种计算机通信协议.对于两台机器而言,就是A服务器上的应用程序调用B ...

  5. 基于 Java NIO 实现简单的 HTTP 服务器

    1.简介 本文是上一篇文章实践篇,在上一篇文章中,我分析了选择器 Selector 的原理.本篇文章,我们来说说 Selector 的应用,如标题所示,这里我基于 Java NIO 实现了一个简单的 ...

  6. 使用Spring 3.1和基于Java的配置构建RESTful Web服务,第2部分

    1.概述 本文介绍了如何在Spring中设置REST –控制器和HTTP响应代码,有效负载编组配置和内容协商. 2.在Spring了解REST Spring框架支持两种创建RESTful服务的方式: ...

  7. java 解析为sip_一、基于JAVA的GB28181实现之SIP服务启动[part1]

    # 基于JAVA的SIP协议实现[part1] 最近用JAVA的SIP协议写了一个GB28181平台的对接,并成功完成了海康.大华.中威等设备,更重要的是海康平台.公安一所平台的对接.因为行业内很少有 ...

  8. java自带JWS开发Webservice服务

    java-JWS开发Webservice 个人工作总结–顺便分享给大家 从JDK5开始,JAVA为WebService提供了Jax-ws支持,所以使用该指南需要具备JAVA 的JDK5以上版本 不多说 ...

  9. java ws协议_基于java实现websocket协议过程详解

    最近了解了下websocket和socket这个东西,说不得不来说下为何要使用 WebSocket ,和为何不用http. 为何需要WebSocket ? HTTP 协议是一种无状态的.无连接的.单向 ...

最新文章

  1. python爬虫进阶案例_Python爬虫进阶必备 | MD5 hash 案例解析讲解
  2. 前端开发常见问题精选(五)
  3. JDBC MySQL Servlet Java入门编写时的一些问题(html背景图片设置、input=date与Java和数据库之间的通信、SQL的基础语句与变量的编写)
  4. 倒排文件索引(Inverted File Index)的建立
  5. 亮剑吧,掏出你吃灰的单片机板子。
  6. python编程基础知识体系_【汇总】Python 编程核心知识体系
  7. soul刷屏编程代码_奔涌吧,编程!少儿编程教育在未来会像语文,数学一样重要!...
  8. AI-多云互联,网络通信的“自动驾驶
  9. 蓝桥杯 ALGO-91 算法训练 Anagrams问题
  10. 去除Xcode6创建工程时自带的storyboard
  11. C++结构体,联合体与枚举类
  12. python django ajax 逻辑推理_python django初识ajax
  13. map的基本操作总结C++
  14. 对计算机硬件的工作原理的认识,计算机硬件组成及工作原理
  15. navicat导入sql语句
  16. 在乌班图系统上安装yum
  17. 用51单片机怎么玩SG90舵机?
  18. php新浪微博登录接口,php新浪微博登录接口用法实例
  19. Unity3d+Gameframework:entity实体代码分析,基于StarForce
  20. Arcanist用法简介

热门文章

  1. Java基础 - javac命令详解(1) 编译基本java项目
  2. A股-指标-boll线全面解析
  3. c语言ios,iOS常用C语言函数
  4. HDU 6868 Absolute Math
  5. iOS最新面试题4【经典】_技术成长笔记_新浪博客
  6. 2020中国最佳雇主榜揭晓,友邦人寿、上海迪士尼等15家企业入选
  7. 【学习笔记】市场机制设计
  8. OSChina 周三乱弹 —— 写代码强迫症
  9. IT领域的司马懿——埃里森(7)
  10. 泛域名SSL数字证书与多域名通配符数字证书