前言
笔者首先在此向大家简单介绍下与此篇博文相关的一些概念及理论,但愿大家有心情和时间听笔者废话。
SOA(Service-Oriented Architecture)指的是一种面向服务架构。它其实就是一种组件模型,通过将应用程序内部的诸多功能定义为一组良好的契约和接口对外透明,以便提供通用的对外服务。相对而言接口的定义务必保持以体系结构中立(与平台、语言无关)的方式进行。因为只有中立的结构才能称之为服务之间的松耦合,松耦合拥有如下2点好处:
1、拥有及时适应环境变化的灵活性;
2、程序组件内部发生改变时,接口将仍然具备有效性;
当你大致明白SOA的相关概念后,咱们接下来谈谈WebService。在这里或许有人会问SOA和WebService存在关系吗??当然,其实说到底WebService仅只是SOA架构的实现方式之一,换句话来说WebService也可以理解为SOA的组成部分,所以他们彼此之间存在相互独立但却相关的关系。
对于WebService而言,它仅仅只是一个抽象的概念,而真正实现WebService的技术目前市面上确实拥有挺多的,比如:Axis、CXF等等...笔者本篇博文重点介绍Axis的使用,关于其他的WebService引擎,笔者则不会讲解及评论。
在开始正式讲解之前,笔者还是有义务进行一下扫盲,或许有很多朋友想问,我们应该在什么时候使用WebService呢?当你觉得你的项目需要和基于不同平台,不同语言开发的应用系统之间的做集成的时候,你就可以使用。
WebService部署图:
一、下载与安装Axis2.x
对于从来没有使用过Axis的朋友而言,笔者不建议你下载与使用Axis1.x,而是直接上手Axis2。因为从本质上来说2.x和1.x存在较大的差异,而这些差异不仅仅是体现在版本上,更多的是Axis的内部变化。当然如果你以前使用过Axis1.x,那么当然这是最好的。
Axis的下载站点:http://axis.apache.org/axis2/java/core/download.cgi:
本文所有示例均使用的是Axis2的1.4.1版本,当然目前最新版本为1.6.2,差异不大,建议下载,请不要问笔者为什么不使用最新版本,因为也希望你替笔者狗血的带宽考虑下,万分感激。
你主要需要下载2个文件:
1、axis2-1.4.1-bin.zip;
2、axis2-1.4.1-war.zip;
axis2-1.4.1-bin.zip包含了Axis2所需的所有相关驱动包,而axis2-1.4.1-war.zip中的axis2.war包则用于用于放置在Web容器中进行WebService的发布。axis2.war其实也就是个Axis2工程,我们今后所有的Service方法都需要发布在该工程中。
废话不多说,我们将axis2-1.4.1-war.zip成功解压后,把包含的axis2.war包放置TomCat的webapps目录下即可,然后启动TomCact(本文所使用的Web容器)输入:http://IP:PORT/axis2/即表示Axis2安装成功。
二、编写与发布属于你的第一个0配置的Service服务
来吧,既然都已经成功安装好Axis2了,接下来我们要做的事情就是开始编写及发布我们的Service服务了,打开你的eclipse,新建一个工程,然后随便写个POJO:
public class MyService
{
public String getName()
{
return "Hello WebService";
}
}
注意看上述代码中,仅仅只是包含一个简单的返回值为String的getName()方法,没错,就这么简单。接下来如何将这个简单的方法发不成WebService方法呢???这其实不难,你只需要将该源文件的字节码(.class)文件拷贝至<TomCat安装目录>\webapps\axis2\WEB-INF\POJO中即可(如果没有POJO目录则自己新建)。
当发布成功后,我们可以打开浏览器输入http://localhost:8081/axis2/services/listServices便可以看见我们发布的Service方法了:
注意看,Service的名称就是咱们的类名,而该Service中所包含的方法就是咱们的getName()方法。
通过点击Service名称连接,你可以查看详细的WSDL文件,那么什么是WSDL呢???简单来说WSDL(Web Services Description Language),是一个用来描述Web服务和说明如何与Web服务通信的XML语言。我们可以在WSDL文件中来测试我们发布的Service方法,输入http://localhost:8081/axis2/services/MyService/getName:
上图很清晰的显示了getName()方法的返回结果,没错就是Hello WebService。通过如上方式,你可以很简单的构建的WebService工程。
不知各位有没有存在诸多疑问?如果我的方法带有一个或者多个参数该怎么办?方法没有返回值该怎么办?POJO如何使用Package声明包?等等疑问请各位先不要着急,给笔者一些时间,毕竟来日方长,该系列的博文将会慢慢为各位揭开如上疑问,你要做的事情仅是耐心等待,在等待的过程中,你可以有多种选择,比如睡觉和吃饭...
未完待续
分享到:
相关推荐
描述了axis2如何发布webservice,如果是用MyEclipse来发布,需要安装插件,把你发布后的.aar文件放 入/web/WEB-INF/services/目录中就能被访问和调用,有点繁琐,但axis2功能十分强大,方法的返回类型不仅可 以用...
总结,Axis2 Webservice端例子旨在帮助开发者了解如何在Axis2环境下构建和发布Web服务。通过定义服务接口、实现业务逻辑、创建WSDL描述和服务打包,以及在服务器上部署和调用,我们可以掌握Axis2的核心工作原理。...
【描述】提到的"Attached the file is Axis_1.4 for webservice development,you can upload it and use it."意味着提供的压缩包包含了Axis 1.4的完整版本,用户可以将其上传到自己的开发环境中,并开始利用这个工具...
### WebService技术应用:Spring 3 + CXF 3.4与Axis 1.4的交互 在现代软件开发中,Web服务作为一种重要的技术手段,被广泛应用于不同系统之间的通信。其中,Spring框架与Apache CXF是实现RESTful或SOAP风格的Web...
接下来,我们需要使用Axis工具生成Web服务的部署文件(wsdd),这可以通过 Axis 的 `wsdl2java` 命令完成。运行以下命令, Axis 将生成必要的客户端和服务器端代码: ```bash java -jar axis.jar wsdl2java -o /...
<typeMapping encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns1:CategoryInfo" languageSpecificType="java:nucleus.organization.webservice.CategoryInfo" serializer="org.apache.axis....
2. `<message>` 元素:定义每个消息的部件,包括消息名称、参数和返回类型。 3. `<portType>` 元素:描述一个 Web Service 的接口,定义了可被执行的操作和相关的消息。 4. `<binding>` 元素:定义每个端口的消息...
### WebService 建立说明 #### WebService 服务端 **建立 WebService 服务端的过程** 1. **启动 JBuilder 并创建新项目** - 打开 JBuilder,选择“File” -> “New”来创建一个新的项目。 - 在出现的对话框中...
本文将详细介绍两种主流的Java调用Webservice的方式:Axis和SOAP,并通过具体代码示例进行阐述。 #### 二、Axis 方式调用 Webservice ##### 1. Axis简介 Apache Axis 是一个开放源代码项目,它为开发和部署基于...
根据给定的文件信息,我们将深入探讨WebService应用的关键知识点,包括WebService的定义、配置方法以及其实现技术,如XFire和Axis。 ### WebService概述 WebService是一种标准的、基于网络的应用程序接口(API),...
在早期的Web服务开发中,开发者通常会使用CXF、Axis2、XFire等工具来构建基于Java的应用程序。这些工具之所以被广泛采用,主要是因为它们能够提供广泛的兼容性和灵活性,并且适应多种不同的Java版本环境。然而,在...
### WebService之WSDL文件详解 #### 一、WSDL概述 **Web Services Description Language (WSDL)**,即Web服务描述语言,是一种基于XML的格式,用于描述Web服务的接口和绑定,以及如何访问这些服务。WSDL允许将Web...
在这个例子中,我们可能会看到一个使用Java的 Axis2 或 JAX-WS 框架创建的SOAP Web服务,或者是使用Spring Boot和OpenAPI/Swagger构建的RESTful API。这些工具可以帮助开发者快速构建和部署Web服务。 跨域访问是Web...
@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL) String sayHello(String name); } ``` 接下来,我们需要实现这个接口。实现类可以包含实际的服务逻辑: ```java public class HelloWorldServiceImpl ...
而WSDL2JAVA工具则是Apache Axis项目提供的一种强大工具,它能够根据WSDL文件自动生成Java代码,包括客户端和服务端的存根(Stub)和骨架(Skeleton)类,极大地简化了Web服务的开发过程。 #### WSDL2JAVA工具的...