JAX-WS 学习一:基于java的最简单的WebService服务
来源:互联网 发布:南大地理专业 知乎 编辑:程序博客网 时间:2024/05/07 20:04
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-WS 学习一:基于java的最简单的WebService服务
- webservice学习笔记(一) - 基于JAX-WS的入门示例
- webservice学习笔记(一) - 基于JAX-WS的入门示例
- 基于Java的webservice创建与jax-ws方式调用
- 基于JAX-WS规范的WebService实现
- 基于JAX-WS的webService开发实例
- 简单的Jax-WS WebService实现
- jax-ws 编写简单的webservice示例
- 简单的Jax-WS WebService实现
- 简单的Jax-WS WebService实现
- 简单的Jax-WS WebService实现
- JAX-WS:创建简单的webservice
- 简单的Jax-WS WebService实现
- 简单的Jax-WS WebService实现-cxf
- 简单的Jax-WS WebService实现
- 简单的Jax-WS WebService实现
- 简单的Jax-WS webservice实现
- 基于CXF的JAX-WS、JAX-RS(RESTful)的webService
- android 实战常见问题
- JavaScript中逗号运算符介绍及使用示例
- Elasticsearch使用
- Java 垃圾回收机制
- 第三章 类和结构体
- JAX-WS 学习一:基于java的最简单的WebService服务
- 关于xcode7生成的framework静态库文件,模拟器和真机framwork如何合并
- 【Android-Genymotion】Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
- 牛腩学用MUI做手机APP
- 移动端弱网测试解决方案(ATC)
- 调色板的原理与显示模式
- MySQL主从复制与读写分离的实现
- 突发(Burst)
- RESTful架构详解