集成axis开发webservice
一、基础知识
    Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。 Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。
    Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
名词解释:
    SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
    WSDL(网络服务描述语言,Web Services Description Language)是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。
    UDDI(通用描述、发现与集成服务,Universal Description, Discovery and Integration)目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
    JAXP(Java API for XML Parsing) 定义了在Java中使用DOM, SAX, XSLT的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要
修改代码。
  JAXM(Java API for XML Messaging) 是为SOAP通信提供访问方法和传输机制的API。
二、使用axis开发webservice例一
(1)要发布的服务端程序
package com.logcd.webservice;
import del.OpResult;
public class Calculator {
    public int add(int i1, int i2) {
        return i1 + i2;
    }
    public int subtract(int i1, int i2) {
        return i1 - i2;
    }
    public int multiply(int i1, int i2) {
        return i1 * i2;
    }
    public int divide(int i1, int i2) {
        return i1 / i2;
    }
    public OpResult getOpResult(int i1, int i2){
        OpResult result = new OpResult();
        result.setSum(add(i1, i2));
        result.setDifference(subtract(i1, i2));
        result.setProduct(multiply(i1, i2));
        result.setQuotient(divide(i1, i2));
        return result;
    }
}
(l中配置AxisServlet
    <servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.ansport.http.AxisServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
(3)配置静态发布文件server-config.wsdd
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
    xmlns:java="/axis/wsdd/providers/java"
    xmlns:handler="/axis/wsdd/providers/handler" xmlns="/axis/wsdd/">
    <globalConfiguration name="defaultClientConfig">
        <requestFlow name="RequestFlow1" type="">
            <handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler">
                <parameter name="scope" value="session"/>
            </handler>
            <handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler">
                <parameter name="scope" value="request"/>
                <parameter name="extension" value=".jwr"/>
            </handler>
        </requestFlow>
    </globalConfiguration>
    <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
    <handler name="LocalResponder" type="java:org.ansport.local.LocalRes
ponder"/>
    <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
    <transport name="http" type="">
        <requestFlow name="RequestFlow1" type="">
            <handler name="Handler1" type="URLMapper"/>
            <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
        </requestFlow>
    </transport>
    <transport name="local" type="">
        <responseFlow name="ResponseFlow1" type="">
            <handler name="Handler1" type="LocalResponder"/>
        </responseFlow>
    </transport>
    <service name="AdminService" type="" provider="java:MSG">
        <parameter name="allowedMethods" value="AdminService"/>
        <parameter name="enableRemoteAdmin" value="false"/>
        <parameter name="className" value="org.apache.axis.utils.Admin"/>
        <namespace>/axis/wsdd/</namespace>
    </service>
    <service name="Version" type="" provider="java:RPC">调用webservice服务
        <parameter name="allowedMethods" value="getVersion"/>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。