JAXWS之旅文档格式.docx
《JAXWS之旅文档格式.docx》由会员分享,可在线阅读,更多相关《JAXWS之旅文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
目录
1.什么是WebService1
2.为什么需要WebService2
3.主流WebService框架2
4.利用JAX-WS开发Web服务2
1.什么是WebService
WebService是有企业发布的完成其特定商务需求的在线应用服务,其他公司或者应用软件可以能够通过Internet来访问这项在线服务。
更多资源访问:
2.为什么需要WebService
我们知道如果我们要把一个桌面程序发布成web程序的话,在以前并不是一件很简单的事情,当然在最早的时候有一项分布式开发技术RMI技术就实现了桌面程序web化。
现在使用WebService就能够很简单的解决这个问题。
其次使用WebService能够让两门语言进行通信,也就是说,你可以服务端是Java语言,而客户端是其他语言,比如Rubby语言。
当然以上只是简单的说明,如果要连接更多的webService还需要您自己细心的体会。
3.主流WebService框架
Axis2——全称ApacheEXtensibleInteractionSystem即阿帕奇可扩展交互系统。
JAX-WS——JavaAPIforXMLWebServices(JAX-WS)是Java程序设计语言一个用来创建Web服务的API。
等等。
更多资源:
4.利用JAX-WS开发Web服务
接下来将以一个实例讲解JAX-WS。
在讲解之前我们大体了解下要开发一个JAX-WS的步骤:
(1)编写能够发布成webservice的接口
(2)实现接口,并指定客户端访问的WSDL(WebServiceDescriptionLanguage)服务名
(3)发布服务
(4)编写客户端访问
第一步:
启动工具
打开开发工具Eclipse,这一步对于编程人员都是veryeasy的一件事件,直接过。
第二步:
新建工程(演示工程名为WebService)
新建一个JavaProject.相信能够学习WebService这项技术的人,这个应该不是问题。
为了照顾一些部分家人,我们还是稍微讲讲,会的家人这步可以跳过。
【菜单栏】--【File】--【New】--【Project】--【JavaProject】
--【Next】输入【Projectname】--【Finish】。
这样我们就创建了一个工程。
图示:
完成的效果图:
第三步:
建包(演示包为webservice)
在刚才建立的工程建立包结构。
操作如下:
点击工程src目录【右键】--【New】--【package】--【输入包名】--【Finish】。
第四步:
新建接口(演示接口名为IMyServer)
在刚才建立的包下新建一个接口。
代码如下:
packagewebservice;
importjavax.jws.WebService;
/**
*接口类
*@authorAdministrator
*
*/
@WebService//此代码说明该接口可以进行Web化
publicinterfaceIMyServer{
/**
*在接口里有一个获取作者姓名的方法
*@paramname:
姓名
*@return:
String
publicStringgetMyName(Stringname);
}
注:
此接口和我们平时写接口是一样的,只是增加了一条
@WebService这样的代码,这条代码的主要作用是允许我们这个接口交给WebService进行管理。
第五步:
实现接口(演示实现类名为MyServerImpl)
让我们写一个实现我们刚才接口的类,写法和我们平时的大差不差。
//以下这句代码的作用是:
定义客户端访问的WSDL服务名
@WebService(endpointInterface="
webservice.IMyServer"
)
publicclassMyServerImplimplementsIMyServer{
@Override
publicStringgetMyName(Stringname){
//TODOAuto-generatedmethodstub
System.out.println("
Calledbytheclient"
);
return"
Hello,"
+name+"
I'
mhappytolearnwebservicewithyou."
;
}
这个实现类比一般实现类多了以下代码:
这句代码作用是:
webservice是包名,IMyServer是接口。
现在的文件目录结构如下:
第六步:
发布服务(演示名为:
PublishServer)
我们需要将我们的类进行发布。
importjavax.xml.ws.Endpoint;
*此类的作用是:
发布我们要让客户端访问的类
publicclassPublishServer{
*启动程序
*@paramargs
publicstaticvoidmain(String[]args){
/*
*参数说明:
*第一个参数http:
127.0.0.1:
2011
*这是url地址,需要指定端口
*
*第二个参数newMyServerImpl()
*这个就是我们要让客户端访问的实现类
*不能是接口(嘎嘎,接口也不允许new呀。
)
*/
Endpoint.publish("
http:
//127.0.0.1:
2011/myweb"
newMyServerImpl());
TheServerisstarted."
文件目录结构图:
让我们运行PublishServer
运行成功之后控制台显示:
这表示发布成功了,我们可以打开浏览器进行访问(因为是web,所以网页当然能访问了,嘎嘎)
【打开浏览器】--在地址栏输入
【http:
2011/myweb?
wsdl】
效果图:
至此说明以上操作基本上是没有问题了。
第七步:
编写客户端程序(演示名为MyClient)
用浏览器访问并不是我们的最终目的,我们是希望通过Java代码去访问服务器。
那么接下来让我们编写一下客户端程序。
import.MalformedURLException;
import.URL;
importjavax.xml.namespace.QName;
importjavax.xml.ws.Service;
publicclassMyClient{
*@throwsMalformedURLException
publicstaticvoidmain(String[]args)throwsMalformedURLException{
//服务URL
URLurl=newURL("
*第一参数:
http:
//webservice/
*服务的URI
*第二个参数:
MyServerImplService
*在WSDL发布的服务名,这个名称是你的实现类连接上Service
QNameqname=newQName("
//webservice/"
"
MyServerImplService"
//创建服务
Serviceservice=Service.create(url,qname);
//提取服务端口
IMyServermyServer=service.getPort(IMyServer.class);
//调用方法
System.out.println(myServer.getMyName("
林祥纤"
));
文件目录结构:
运行MyClient:
Dos窗口显示接口:
服务端不可关闭。
伸伸懒腰,终于可以闭灯休息了。
先告一小段落吧。
源码附上