`
e_ville
  • 浏览: 28053 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

简单的Web Service例子

阅读更多
原创:简单的Web Service例子                 

(ALin 2006-12-23 13:11)

 
写本文的目的在于提供一个简单的、一定能行的、版本又不是太老的Web Service的入门例子:HelloService,让大家对Web Service有个大致的体会。先声明:我也是个初学者,最近几天有点进展了,所以写出来,或许对某些人能有所帮助。
既然是简单的,就不使用大型的IDE,如EclipseJBuilderNetBeans之类的,只使用一个文本编辑器即可,我一直比较喜欢Editplus,本例中也使用Editplus来编写相关的代码和文件,当然也可以使用其他的文本编辑器,至于编译、打包、部署之类的,都使用手动方式进行,我想这样给大家的印象是最直观的。既然是一定能行的,自然是经我实践过的,在近期内可用的,不过版本升级后可能也会不行了。
 
环境:
1. Axis2 V1.1
2. Tomcat5.5
3. JDK1.5
相关说明及注意事项:

<!---->1.     <!---->Axis2Web Service部署目录:

<TOMCAT_HOME>\webapps\axis2\WEB-INF\services
2. 调用Web Service时方法的参数命名为param0, param1……之类的,而不是与源文件中一致。这个可能是由WSDL文件决定的,所以自已手写WSDL的话不一定是这样子。但在本例中请注意这点。后面有详细的说明。
 
一、在任意位置建立本Web Service的目录结构:
Hello
+------src
         +--------META-INF
                    +---------- services.xml
         +--------Hello.java
+------bin
        +--------META-INF
                   +---------- services.xml
        +--------Hello.class
 
很简单,一个src目录下,放源文件和META-INF目录,其中META-INF目录是用来放置配置文件services.xml的。bin目录下的META-INF完全是src目录下的拷贝。
 
二、编写相关源文件。
Web Service中只有一个源文件:Hello.java和一个配置文件:services.xml。分别如下所示:
源代码:
代码1Hello.java
// Hello.java -- A simple class.
// 2006-12-11 00:22
 
import java.util.Date;
 
public class Hello {

   public String hello(String name) {

       if(name == null)

           name = "NO NAME";

       return "Hello, [" + name + "], welcome to the world of Web Service!";

   }
 

   public String getDate() {

       Date d = new Date();

       return d.toString();

   }
}
 
Hello.java中定义了2个方法,其中hello可以带参数,getDate只是简单地返回当前时间的字符串形式。
 
配置文件:
代码2services.xml

<?xml version="1.0" encoding="UTF-8"?>

<service name="HelloService" scope="application">

    <description>Hello Sample Service</description>

    <messageReceivers>

        <messageReceiver

            mep="http://www.w3.org/2004/08/wsdl/in-only"

           class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>

        <messageReceiver

            mep="http://www.w3.org/2004/08/wsdl/in-out"

           class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>

    </messageReceivers>

   <schema schemaNamespace="http://quickstart.samples/xsd"/>

    <parameter name="ServiceClass">Hello</parameter>

</service>
 
services.xml文件中注意以下内容:

<service name=”HelloService” ……> 这个就是在Axis2List Services时所显示的名字。

最后面的<parameter name="ServiceClass">Hello</parameter>换成自己的相关类即可。这里是Hello

最终在Axis2List Services时会显示所有可用的Web Service的名字,方法列表,URL等。如下所示:

<!----><!----><!---->

HelloService

Service EPR : http://localhost:8080/axis2/services/HelloService
Service REST epr : http://localhost:8080/axis2/services/HelloService
: http://localhost:8080/axis2/rest/HelloService

Service Description : HelloService

Service Status : Active
Available Operations
  • getDate
  • hello
 
三、编译、打包、部署
1. 编译,只有一个Hello.java要编译,这个地球人都会吧。编译好了把生成的Class文件放到bin目录下。这个可以借助于ANT来完成。这里不说了,直接手动完成。
 
2. 打包,这一步不是必须的,其实只要把bin文件夹放到最终的部署目录下就行了。当然啦,为了便于区分,把目录名改成HelloService,也可以改成其他的任意名字。
一个Web Service项目在打包生成的是.aar文件。使用jar命令即可。

命令行进入到我们的bin目录下,执行命令jar cvf HelloService.aar .(注意最后一个点不可少,反正就是打包命令咯,不管用什么方法,只要正确打包就行了)

F:\JAVA_File\RPC_RMI_CORBA_Example\Web Service\Hello\bin>jar cvf HelloService.aar .

标明清单(manifest)

忽略项 META-INF/

增加:META-INF/services.xml(读入= 619) (写出= 288)(压缩了 53%)

增加:Hello.class(读入= 523) (写出= 337)(压缩了 35%)

 

F:\JAVA_File\RPC_RMI_CORBA_Example\Web Service\Hello\bin>

 
3. 部署,执行完第2步后,在bin目录下可以看到生成的HelloService.aar文件,这个就是最终要部署的,把它复制到部署目录下就行了。当然也可以按照第2步中的不打包,直接部署。
部署目录是:
<TOMCAT_HOME>\webapps\axis2\WEB-INF\services
我自己的为:

C:\Tomcat 5.5\webapps\axis2\WEB-INF\services

 
四、测试Web Service
1. 访问:http://localhost:8080/axis2/
这个是Axis2 Web应用程序的主页,有3个链接:
Services

      View the list of all the available services deployed in this server.

* Validate

      Check the system to see whether all the required libraries are in place and view the system information.

* Administration

      Console for administering this Axis2 installation.

 
Services:列出Web Service。出错的Web Service在最下面。
Validate:检查Axis2相关的包是否存在以及环境是否配置正确。
AdministrationAxis2默认的管理员帐号和密码为:admin/axis2
 

<!---->2.     <!---->测试HelloService

查看相关的WSDLXSD
http://localhost:8080/axis2/services/HelloService?wsdl
http://localhost:8080/axis2/services/HelloService?xsd
HelloService换成其他的Web Service就可以查看相应的WSDLXSD了。查看WSDL的时候要注意一点:看方法参数的名字。方法的参数命令为param0, param1……之类的。在调用这些方法的时候就要使用param0,而不是使用在Java源代码中方法的参数名。这一点非常重要。
访问以下页面:
http://localhost:8080/axis2/rest/HelloService/hello?param0=Ben
可以看到输出结果为:

<!----><!----><!---->

 −
<ns:helloResponse>
<ns:return>Hello, [Ben], welcome to the world of Web Service!</ns:return>
</ns:helloResponse>
访问页面:
http://localhost:8080/axis2/rest/HelloService/getDate
输出结果为:

<!----><!----><!---->

 <ns:getDateResponse>
<ns:return>Sat Dec 23 19:19:38 CST 2006</ns:return>
</ns:getDateResponse>
这就表示Web Service运行正常。
 
五、总结
编写Web Service的编译、打包、部署之类的工作可以使用ANT来做,很方便。也可以使用其他的IDE来做,很多IDE其实也是内部使用ANT来完成的。不过,直接手动操作可以加深印象,让人知道是怎么一回事,而不会知其然,不知其所以然。
 
 
 
[参考资料]
1. Axis2文档。
 
分享到:
评论

相关推荐

    Java Web Service 程序例子

    Java Web Service 学习例子,里面有大量用来开发web services的Java程序示例,非常值得学习。 使用到的技术及工具如下: Apache: www.apache.org and xml.apache.org -- Ant 1.4.1 -- SOAP 2.2 -- Tomcat 3.2...

    asp.net写的web service例子

    ASP.NET Web Service是一种基于.NET Framework的简单方法,用于构建可跨平台、跨语言通信的Web应用程序。这个例子是为初学者设计的,旨在演示如何创建和使用Web Service,以及如何在ASP.NET环境中调用这些服务。 ...

    Web Service入门例子

    在本“Web Service入门例子”中,我们将探讨Web Service的基本概念、架构以及如何使用XFire工具来实现一个简单的Web Service。 一、Web Service基础知识 1. 定义:Web Service是一种通过标准协议(如SOAP、REST)在...

    简单web service服务端和客户端例子

    本教程将通过一个简单的Web Service服务端和客户端例子来阐述这一技术的核心概念。 一、Web Service基本概念 1. **SOAP(Simple Object Access Protocol)**:SOAP是Web Service的基础协议,它定义了消息结构和...

    C语言Web service例子

    本主题将深入探讨如何使用C语言来创建Web服务,并通过提供的两个示例文件——`webserver.cpp`和`Web service.cpp`来阐述关键概念。 1. **Web服务基础**:Web服务基于开放标准,如SOAP(简单对象访问协议)和REST...

    myeclipse XFire Web service 例子

    【标题】:myeclipse XFire Web service 例子 【正文】: 在IT行业中,Web服务是一种基于互联网的标准协议,允许不同系统之间进行通信和数据交换。XFire是Apache CXF项目的前身,它是一个高性能、轻量级的Java Web...

    axis web service例子

    总结来说,"axis web service例子"是一个实践性的教学资源,帮助开发者深入理解Java Axis Web服务的工作机制,包括服务的创建、部署和调用。通过实际操作,学习者可以提升自己的Web服务开发技能,为未来的项目开发...

    MyEclipse REST Web Service 简单的实现例子

    【标题】:MyEclipse REST Web Service 简单实现案例 在当今互联网技术日新月异的时代,REST(Representational State Transfer)架构风格已成为构建Web服务的重要方式,它强调资源的表述和状态转换,简单易用且...

    web service例子源码及应用程序

    描述中提到的"android web service 示例源码"可能包含了以下部分: 1. Android客户端代码:这部分展示了如何在Android应用中设置网络请求,可能使用了Retrofit或其他库来创建Web服务接口,并进行数据序列化和反序列...

    Web Service 的一个简单例子

    总的来说,"Web Service的一个简单例子"这个主题涵盖了许多核心概念,包括服务接口定义、服务实现、客户端调用以及安全性与可靠性。理解这些基础,将有助于进一步探索更复杂的Web Service应用场景,如B2B集成、...

    mule使用SOAP工件发布和消费web Service的简单例子

    总结来说,"mule使用SOAP工件发布和消费web Service的简单例子"是关于利用Mule ESB创建和使用SOAP服务的一个实践教程。通过"hello-ws"示例,我们可以深入理解SOAP服务的生命周期,从定义WSDL到编写服务逻辑,再到...

    简单星座测试 Web Service 实例代码

    这个例子对于初学者来说是一个很好的起点,帮助他们理解Web Service的基本工作原理和.NET框架中的Web Service和C#客户端应用的开发。通过深入研究这个实例,开发者可以进一步掌握网络通信、数据交换以及Web Service...

    axis实现的web service例子

    这个“axis实现的web service例子”提供了一个完整的示例,包括服务端和客户端两部分,方便开发者快速集成到自己的项目中。 首先,我们来理解服务端部分——`WebServiceServerByAxis`。这部分主要展示了如何使用...

    动态调用Web Service的例子

    以上就是关于“动态调用Web Service的例子”的核心知识点,这些内容对于理解和实现C#中的Web Service调用至关重要。在实际开发中,根据具体需求,可能还需要处理错误、管理连接、缓存响应、安全性等问题。

    Web Service学习(源程序例子)

    Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。 Web Service

    web Service简单应用例子

    这个类可以通过`@WebService.serviceName`和`@WebService.endpointInterface`注解与接口关联。 - 编译后,服务会被部署到一个支持JAX-WS的服务器上,如Tomcat或Glassfish。部署后,它可以通过一个WSDL(Web ...

    在Windows 8中使用web service的例子

    在这个例子中,我们将探讨如何在Windows 8应用中集成Web Service,主要涉及C#编程语言。 首先,理解Web Service的基础知识至关重要。Web Service通常基于SOAP(Simple Object Access Protocol)或REST...

    web service 完整例子(绝对好)

    综上所述,这个“Web service 完整例子”涵盖了从设计、开发到部署和使用的整个Web服务生命周期,是学习和理解Web服务工作原理的宝贵资源。通过深入研究和实践这个例子,开发者可以更好地掌握Web服务技术,并将其...

    Spring Web Service实例

    Spring Web Service是Spring社区基于Spring提供的一个关注于创建”文档驱动”的Web Service的模块, 它的主要目标是方便基于”契约优先”(Contract-First)的SOAP服务的开发. 好像没有多少人讨论, 大多数的话题都是...

Global site tag (gtag.js) - Google Analytics