简介
WebService是一种服务的提供方式,通过WebService,不同应用间相互间调用变的很方便,网络上有很多常用的WebService服务,如:http://developer.51cto.com/art/200908/147125.htm,不同的语言平台对WebService都有实现,Java的WebService实现,比较流行的有Axis2、Jaxws,本文介绍的是Axis2。
Axis2下载和部署
Axis2是Apache开发的一个开源项目,再次感叹Apache的伟大!
下载地址:
http://mirror.bit.edu.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip
将其内axis2.war解压到<Tomcat安装目录>/webapps下,启动Tomcat,war包会自动解压,
访问http://localhost:8080/axis2/,如果看到欢迎主页,则说明部署成功。
配置Axis2
<Tomcat安装目录>/webapps/axis2/WEB-INF/conf/axis2.xml,配置其内两个属性,以便调试。
编写服务
所谓服务就是编写一个类,写一些方法,方法返回数据,WebService客户端获取数据。
0配置POJO发布服务
服务类创建好后,我们需要发布到服务器上,将HelloService.class放到<Tomcat安装目录>/webapps/axis2/WEB-INF/pojo下,pojo没有需要创建。
至此,我们已经成功的创建了一个WebService服务了,so easy!
再次访问http://localhost:8080/axis2/,点击Services,可以发现可用services中多了一个HelloService,其内有一个可用操作sayHello,说明发布成功。
访问http://localhost:8080/axis2/services/HelloService,页面输出正是我们的返回值。
这里有两点需要注意:
- POJO发布的类不能放在包里,既不能使用package关键字;
- 默认的发布目录是pojo,可以在<Tomcat安装目录>/webapps/axis2/WEB-INF/conf/axis2.xml中增加目录,
要注意多个目录见WebService要唯一,否则会重名,重名后,先部署的会成功,后部署的会报错。
services.xml配置文件发布服务
虽然POJO的方式不需要配置文件,但是其服务类不能放在包内,显然是不符合我们日常开发的,Axis2也允许带包的类发布WebService,如果不允许,估计就没人用了。
首先写一个较复杂的服务类,多个方法,带参数,有返回值的。
然后编写services.xml,该文件需要放在META-INF文件夹下。
最后将这两个文件打成jar包,不论用工具还是手动打,打的都是最外层的文件夹。
我打的名字是server.jar,更改后缀为aar,所以最后是server.aar,Axis2建议使用aar发布WebService,
将server.aar放到<Tomcat安装目录>/webapps/axis2/WEB-INF/services下,访问http://localhost:8080/axis2/services/listServices,
多出了一个CalculateService,说明发布成功。
分别访问
http://localhost:8080/axis2/services/CalculateService/plus?x=1&y=2
http://localhost:8080/axis2/services/CalculateService/divide?x=1&y=2
http://localhost:8080/axis2/services/CalculateService/minus?x=1&y=2
http://localhost:8080/axis2/services/CalculateService/multiply?x=1&y=2
也可以发布多个WebService,可以使用serviceGroup标签。
客户端实现
以上介绍的都是WebService服务创建及发布,那么有了一个WebService服务后,我们如何调用呢?只在浏览器上访问是没有意义的。
下载Axis2客户端压缩包:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip,并解压。
新建工程WebServiceClientTest,将<Axis2客户端安装目录>/lib下所有jar包添加到工程中;
编写客户端代码;
以上是实现了一个简单的WebSerivce客户端,调用CalculateService中的plus方法,由代码可见,这种调用方式比较杂乱,代码不太友好。
wsdl2java简化客户端
<Axis2客户端安装目录>/bin目录,其内有两个bat,wsdl2java.bat和java2wsdl.bat,可以实现WSDL文件和Java之间的互相转换。
考虑到我们以后可能经常使用这些命令,设置环境变量,方便以后调用。在系统变量中加入AXIS2_HOME=<Axis2客户端安装目录>,path中追加;%AXIS2_HOME%\bin。
启动命令提示符,进入WebServiceTestClient所在目录,运行
参数说明:uri - wsdl文件路径,网络路径或本地路径,p - 打包,这里和上一个客户端实现类打在了一个包里,wsdl2java有很多参数,详细可以运行该命令去查看。
执行后,如果没有报错,说明运行成功,刷新项目,该包下多出了一个CalculateServiceStub类,里面的代码极其复杂,还乱呼呼的,这我们不用管,调用该类。
如此做的好处就是调用时不需要在去查看WSDL,和正常使用一个类一样,对WebService的封装都由wsdl2java自动生成,代码更优雅、简洁。
利用wsdl2java轻松使用第三方WebService服务
有了wsdl2java,已知一个WSDL文件我们就可以轻松的生成WebService客户端供我们调用,给我们服务。文章开头给出的链接包含了一些第三方服务,有一个服务是生成随机个数中文,WSDL:http://www.webxml.com.cn/WebServices/RandomFontsWebService.asmx?wsdl,同样,启动命令提示符,进入项目路径,执行
调用该类
源码下载
http://download.csdn.net/download/ghsau/6400843
(
相关推荐
**三、创建WebService客户端** 1. **生成客户端代理类** 使用JAX-WS的`wsimport`工具,根据服务的WSDL地址生成客户端所需的代理类和数据绑定类。在命令行中运行: ```bash wsimport -keep -s src -p ...
从准备必要的jar包,到编写服务接口和实现,再到生成和部署服务,以及创建客户端并调用服务,这一系列过程涵盖了WebService开发的关键步骤。理解并掌握这些知识,将有助于你在实际工作中灵活运用WebService进行跨...
总结,本教程详细介绍了如何利用Spring Boot和Apache CXF搭建Web Service服务端,以及使用JAX-WS的`javax.xml.ws.Service`和Apache CXF的`JaxWsProxyFactoryBean`两种方式实现Java客户端调用。这些技能对于开发者来...
使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等
- **实现服务接口**:创建一个实现了服务接口的类,这个类通常包含实际的服务逻辑。 - **发布服务**:使用`Endpoint`类的`publish`方法发布服务,指定服务的终结点地址。 3. **生成WSDL(Web Service Description...
2. 实现服务接口:创建一个类实现该接口,提供实际的业务逻辑。 3. 配置服务:使用CXF提供的注解(如`@WebService`)标记接口和实现类,指定服务的元数据,如服务名、端点地址等。 4. 发布服务:通过CXF的Server类...
WebService服务端及客户端样例工程提供了一个完整的实例,帮助开发者理解如何创建、调用和测试Web服务。服务端主要涉及接口定义、服务发布,而客户端则涉及代理类的生成和调用服务。在实际项目中,还需要关注安全性...
3. **实现服务接口** 接下来,我们需要实现这个接口。实现类也需要被标记为`@WebService`,并且可以添加其他的注解来定制行为: ```java @WebService(endpointInterface = "com.example.HelloWorldService") ...
2. **实现服务类**:为接口提供具体的实现。 3. **部署服务**:使用Axis2的工具,如wsdl2java,将WSDL文件转换为Java代码,然后将服务类打包成服务存根(Stub)和 skeletons。 4. **启动服务**:通过Axis2的服务器...
【Java调用WebService客户端详解】 在Java开发中,有时我们需要从客户端调用远程的WebService服务以获取或传递数据。本文将详细介绍如何使用Java进行WebService客户端的调用,并提供HttpGet、HttpPost、HttpSoap...
2. 实现服务:根据WSDL定义的服务接口编写实际的业务逻辑。在Java中,可以使用JAX-WS(Java API for XML Web Services)框架来创建Web服务。 3. 部署服务:将实现的服务部署到支持SOAP的Web服务器上,例如Tomcat或...
在这种场景下,Java创建了一个WebService,而C#作为客户端需要与之交互。 1. **Java WebService创建**: Java开发者通常使用JAX-WS(Java API for XML Web Services)框架来创建WebService。这包括编写一个Java类...
### Java编写WebService客户端详解 #### 一、概述 在现代软件开发中,Web服务作为一种重要的技术手段被广泛应用于系统间的数据交互与通信。其中,基于Java的WebService客户端开发更是占据了重要地位。本文将通过...
java 创建webservice,服务端与客户端源码
2. **实现服务接口**:创建一个类实现这个接口,并提供具体的服务逻辑。 ```java @WebService(endpointInterface = "UserService") public class UserServiceImpl implements UserService { @Override public ...
在使用Tomcat+Axis实现服务调用的情况下,Tomcat是一个流行的Java应用服务器,而Axis是Java中的一个WebService框架。你需要在Tomcat中部署WebService服务,然后使用Axis工具生成客户端代码,最后在客户端应用程序中...
本篇文章将深入探讨如何利用JBoss Netty创建高效的Web Service客户端和服务端。 首先,我们需要理解Netty的基本工作原理。Netty采用非阻塞I/O模型,基于Java NIO(非阻塞输入/输出)库,允许在网络操作中进行高并发...
三、创建WebService客户端 1. 生成客户端代理类:CXF提供了wsdl2java工具,可以将服务端的WSDL文档转换为Java客户端代码,生成服务代理类和数据模型类。 2. 引入依赖:同样需要引入CXF客户端的相关jar包,如cxf-rt-...
在这种情况下,Java开发者可以创建一个Web服务,该服务可以接收文件数据并进行传输。 Java调用Windows COM组件是一个相对复杂的过程,因为Java本身并不直接支持COM(Component Object Model)。这就是JACOB(Java ...
2. **WebService客户端调用**: - **代理类生成**:客户端通常需要一个代理类来调用服务端的方法。对于Java,可以使用WSDL文件生成代理类,如使用`wsimport`工具或者Apache CXF框架。 - **SOAP请求构造**:通过...