jax java_JAX-WS 学习一:基于java的最简单的WebService服务
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服务相关推荐
- Java实现的简单的WebService服务发布和Client调用例子
做大作业,要求用到WS,在网上看了看,自己写了一个,很简单的服务发布和Client调用例子. WebService有很多实现的方式,但是原理基本都是一样的,都是基于SOA的三角模型,所以重点在于理解了 ...
- 基于Java毕业设计疫情下居家隔离服务系统源码+系统+mysql+lw文档+部署软件
基于Java毕业设计疫情下居家隔离服务系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计疫情下居家隔离服务系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B ...
- 基于Java毕业设计郑工社团交流服务信息平台源码+系统+mysql+lw文档+部署软件
基于Java毕业设计郑工社团交流服务信息平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计郑工社团交流服务信息平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构 ...
- 基于消息中间件RabbitMQ实现简单的RPC服务
转载自 基于消息中间件RabbitMQ实现简单的RPC服务 RPC(Remote Procedure Call,远程过程调用),是一种计算机通信协议.对于两台机器而言,就是A服务器上的应用程序调用B ...
- 基于 Java NIO 实现简单的 HTTP 服务器
1.简介 本文是上一篇文章实践篇,在上一篇文章中,我分析了选择器 Selector 的原理.本篇文章,我们来说说 Selector 的应用,如标题所示,这里我基于 Java NIO 实现了一个简单的 ...
- 使用Spring 3.1和基于Java的配置构建RESTful Web服务,第2部分
1.概述 本文介绍了如何在Spring中设置REST –控制器和HTTP响应代码,有效负载编组配置和内容协商. 2.在Spring了解REST Spring框架支持两种创建RESTful服务的方式: ...
- java 解析为sip_一、基于JAVA的GB28181实现之SIP服务启动[part1]
# 基于JAVA的SIP协议实现[part1] 最近用JAVA的SIP协议写了一个GB28181平台的对接,并成功完成了海康.大华.中威等设备,更重要的是海康平台.公安一所平台的对接.因为行业内很少有 ...
- java自带JWS开发Webservice服务
java-JWS开发Webservice 个人工作总结–顺便分享给大家 从JDK5开始,JAVA为WebService提供了Jax-ws支持,所以使用该指南需要具备JAVA 的JDK5以上版本 不多说 ...
- java ws协议_基于java实现websocket协议过程详解
最近了解了下websocket和socket这个东西,说不得不来说下为何要使用 WebSocket ,和为何不用http. 为何需要WebSocket ? HTTP 协议是一种无状态的.无连接的.单向 ...
最新文章
- python爬虫进阶案例_Python爬虫进阶必备 | MD5 hash 案例解析讲解
- 前端开发常见问题精选(五)
- JDBC MySQL Servlet Java入门编写时的一些问题(html背景图片设置、input=date与Java和数据库之间的通信、SQL的基础语句与变量的编写)
- 倒排文件索引(Inverted File Index)的建立
- 亮剑吧,掏出你吃灰的单片机板子。
- python编程基础知识体系_【汇总】Python 编程核心知识体系
- soul刷屏编程代码_奔涌吧,编程!少儿编程教育在未来会像语文,数学一样重要!...
- AI-多云互联,网络通信的“自动驾驶
- 蓝桥杯 ALGO-91 算法训练 Anagrams问题
- 去除Xcode6创建工程时自带的storyboard
- C++结构体,联合体与枚举类
- python django ajax 逻辑推理_python django初识ajax
- map的基本操作总结C++
- 对计算机硬件的工作原理的认识,计算机硬件组成及工作原理
- navicat导入sql语句
- 在乌班图系统上安装yum
- 用51单片机怎么玩SG90舵机?
- php新浪微博登录接口,php新浪微博登录接口用法实例
- Unity3d+Gameframework:entity实体代码分析,基于StarForce
- Arcanist用法简介