java webservice 依赖_java开发webservice的几种方式

news/2024/6/28 18:50:58

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。

1.Axis2

Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。

(1)下载eclipse的Java EE版本

http://www.eclipse.org/downloads/

(2)下载axis2

http://axis.apache.org/axis2/java/core/download.cgi

(3)下载eclipse的axis2插件

Axis2_Codegen_Wizard

Axis2_Service_Archiver

http://axis.apache.org/axis2/java/core/tools/index.html

推荐使用1.3的版本

(4)eclipse安装axis2插件

1)在任意目录下新建一个Axis2文件夹,在该文件夹下新建eclipse目录,在eclipse目录中新建plugins目录和    features目录,例如:D:\programSoftware\eclipse-SVN\Axis2\eclipse;

2)把下载的axis2插件解压,并把解压的文件放到新建的eclipse的plugins目录下;

3)在�lipse_home%的目录下新建links目录,并在links目录下新建axis2.link文件,内容为:    path=D:\programSoftware\eclipse-SVN\Axis2;

4)重启eclipse,点击·file-new-other,如果看到Axis2 Wizards,则表明插件安装成功。

(5)安装axis2

下载Axis2的WAR Distribution并解压,把axis2.war包放置到%TOMCAT_HOME%/webapps下,启动tomcat,访问http://localhost:port/axis2,Axis2安装成功。

(6)使用eclipse新建web工程,创建一个普通java类,至少包含一个方法。

(7)发布webservice

1)点击eclipse的File-New-other,打开Axis2 Wizards,选择Axis2 Service Archiver,然后Next;

2)选择Class File Location,也就是类文件存放路径,注意:只选到classes目录,不要包括包文件夹,然后    Next;

3)选择Skip WSDL,然后Next

4)一路Next到Select the Service XML file to be included in the Service archive,勾选Generate the     service xml automatically;

5)Service Name-填写你的service名称,Class Name-填写类名称,要包括包名,然后点击load,然后点击    Finish,这时webservice就发布成功了;

6)然后到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了一个.aar的文件;

7)访问http://localhost:8085/axis2/services/类名?wsdl 就可看到生成的wsdl文件了。

注意:以上的方式是发布到axis2.war包中,你也可以把生成.aar文件copy到你的实际应用中,同时,你也可以使用eclipse的create webservice功能发布你的webservice,选择axis2生成你的webservice,这样webservice就会部署到你的应用中了。

2.Apche CXF

CXF开发webservice也是比较方便和简单的,它和spring的集成可以说是非常地好。举一个CXF开发webservice的例子吧。

1)在eclipse中新建一个web工程,导入依赖包,如图:

2)编写一个接口,如:

public String test(@WebParam(name="value", targetNamespace = "http://service.cxf.zcl.com/", mode = WebParam.Mode.IN)String value);

注意:CXF开发的webservice,接口中的方法的参数一定要以这种方式,否则客户端调用的时候CXF服务端会接收不到参数的值,name:参数名称,可不写(建议写上),targetNamespace:命名空间,一定要填写上,默认是包名反过来的顺序,mode:参数类型,IN表示输入。

3)编写一个实现类,实现接口的方法;

4)和spring的集成,编写一个bean文件,如:cxf-beans.xml,内容如下:

Cxf-beans.xml代码

2Q==

这个文件比较容易理解,就不解释了。

5)配置CXFServlet

在web.xml文件中配置CXFServlet,加载cxf-beans.xml文件,内容如下:

Web.xml代码

vBTte2z4WS6fJDgAY1kxz2RJNAQCwmynGAwAAO2K8ldiLQNcCAGBYxHgAANZ0wZg7AADQwf8Blj4eF9NIR88AAAAASUVORK5CYII=

把工程部署到中间件,如tomcat,就可以访问该webservice了。

3.JDK开发webservice

1)编写一个Java类,如下:

Jdkwebservice.java代码

packagedemo;importjavax.jws.WebParam;importjavax.jws.WebService;importjavax.xml.ws.Endpoint;

@WebServicepublic classJdkWebService {public String doSomething(@WebParam(name="value", targetNamespace = "http://demo/", mode =WebParam.Mode.IN)String value) {return "Just do it," + value + "!";

}public static voidmain(String[] args) {

Endpoint.publish("http://localhost:8080/jdkwsdemo/demo.JdkWebService", newJdkWebService());

}

}

2)运行该java类,在浏览器上就可以访问该webservice了。

注意:开发web工程的时候,这种方法不太友好。我们可以编写一个servlet类,在servlet类的初始化方法中发布webservice,这样我们的中间件服务器启动的时候就会帮我们自动webservice了。


http://lihuaxi.xjx100.cn/news/270037.html

相关文章

给Python代码加上酷炫进度条的几种姿势

作者 | 刘早起来源 | 早起Python(ID: zaoqi-python)大家好,在下载某些文件的时候你一定会不时盯着进度条,在写代码的时候使用进度条可以便捷的观察任务处理情况,除了使用print来打印之外,今天本文就介绍几种…

ピエタ~幸せの青い鳥~相关

先打全所有升级补丁 不然没有end4 补丁下载页 4个end出现方法 只看律视角 选项任意→end1 只看愛视角 选项任意→end2 检查一下 这两个流程的CG是否收全了 开启唯视角以后有些CG是找不回的 只看唯视角 选项任意→end3 只看唯视角 最后一个选项选“唯” 此后只要律或愛的视角开…

你还在认为 count(1) 比 count(*) 效率高?

点击上方蓝色“方志朋”,选择“设为星标”回复“666”获取独家整理的学习资料!来源| blog.csdn.net/iFuMI/article/details/779207671、count(1) and count(*)2、count(1) and count(字段)3、count(*) 和 count(1)和count(列名)区别4、实例分析1. count(…

爆火的博士论文致谢,刚刚本人回应:祝愿大家努力终有所成!

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达杨净 鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI“理想不伟大,只愿年过半百,归来仍是少年,希望还有机会重新认识这个世界&#xff0c…

惯性导航系统简介

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达前面文章中我们介绍过SLAM中的两大类传感器:激光雷达和视觉传感器,并详细分析了其优缺点。而实际上,在基于移动机器人的SLAM中&#x…

当我们按下电源键,Android 究竟做了些什么?

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文由goo发表于云社区专栏 相信我们对Android系统都不陌生,而Android系统博大精深,被各种各样的智能设备承载的同时,我们会否好奇过,如此复杂的Android究竟是…

简述软件配置管理

http://blog.csdn.net/zhangmike/article/details/470477本文用菊子曰发布转载于:https://www.cnblogs.com/sdsunjing/p/5019791.html

Uber 前无人驾驶工程师告诉你,国内无人驾驶之路还要走多久?

受访者 | Graviti 创始人&CEO 崔运凯记者 | Aholiab,编辑 | Carol出品 | AI科技大本营(ID:rgznai100)经过数年的发展,现在的人们谈到“AI”已经不再像过去一般感到遥不可及。但 AI 在国内发挥的作用仍然只是冰山一角&#xff…