目  录
一 使用Axis和XFire发布Web Service    2
1.1 准备工作    2
1.1.1 新建工程    2
1.1.2 axis依赖文件    3
1.1.3 XFire依赖文件    3
1.2 Axis发布Web Service    4
1.2.1 传递简单数据类型的Web Service    4
1.2.2 带自定义对象传递的Web Service    8
1.3 XFire发布Web Services    10
1.3.1 传递简单数据类型的Web Service    10
1.3.2传递复杂数据类型的Web Service    12
附录: 1Server的结构    16
二 调用Web Services    17
2.1 准备工作    17
2.1.1 新建工程    17
2.1.2 启动Tomcat上发布的1Server服务    17
2.2 Axis发布的Web Service调用方式    18
2.2.1 Dynamic Invocation Interface (DII)方式    18
2.2.2 Dynamic Proxy方式    19
2.2.3 Stubs方式    20
2.3调用XFire发布的Web Service    22
2.3.1服务以jar包形式发布的时候 直接调用    23
2.3.2 使用Axis的Client包    23
2.3.3 使用Xfire的Client包    24
附录2:2Client目录结构    31

一 使用Axis和XFire发布Web Service
1.1 准备工作
Axis主页: /
Axis下载:/dist/ws/
XFire主页:/
XFire下载:/Download
去以上站点下载axis最新包 和XFire最新包,包内有axis和XFire依赖的其他jar包。
1.1.1 新建工程
1.1.2 axis依赖文件
1.1.3 XFire依赖文件
1.2 Axis发布Web Service
1.2.1 传递简单数据类型的Web Service
1. Axis依赖的jar包放入lib文件夹下.
2. l中加入如下:
   
    <listener>
        <listener-class>
            org.ansport.http.AxisHTTPSessionListener
        </listener-class>
    </listener>
    <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>
            org.ansport.http.AxisServlet
        </servlet-class>
    </servlet>
    <servlet>
        <servlet-name>AdminServlet</servlet-name>
        <servlet-class>
            org.ansport.http.AdminServlet
        </servlet-class>
        <load-on-startup>100</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>SOAPMonitorService</servlet-name>
        <servlet-class>
            org.itor.SOAPMonitorService
        </servlet-class>
        <init-param>
            <param-name>SOAPMonitorPort</param-name>
            <param-value>5001</param-value>
        </init-param>
        <load-on-startup>100</load-on-startup>
    </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>
    <servlet-mapping>
        <servlet-name>SOAPMonitorService</servlet-name>
        <url-pattern>/SOAPMonitor</url-pattern>
    </servlet-mapping>
   
    <!--
        <servlet-mapping>
        <servlet-name>AdminServlet</servlet-name>
        <url-pattern>/servlet/AdminServlet</url-pattern>
        </servlet-mapping>
    -->
    <session-config>
       
        <session-timeout>5</session-timeout>
    </session-config>
    <!-- currently the W3C havent settled on a media type for WSDL;
        /TR/2003/WD-wsdl12-20030303/#ietf-draft
        for now we go with the basic 'it's XML' response -->
    <mime-mapping>
        <extension>wsdl</extension>
        <mime-type>text/xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>xsd</extension>
        <mime-type>text/xml</mime-type>
    </mime-mapping>
   
3. 发布到Tomcat5.0+ 启动Tomcat服务
启动的时候若出现下面错误。
这个是因为配置文件没有,没有关系。
访问localhost:8080/1Server/servlet/AxisServlet 查看Axis是否配置成功。
出现该图表示配置成功。
4. 新建HelloAxis.java文件
package cn.freshpower.services;
public class HelloAxis {
    public String sayHello(String name){
        System.out.println("------------axis1 被调用---------");
        return "Hello! "+name;
    }
}
5. 在工程下新建deploy.wsdd文件
内容如下:
<deployment xmlns="/axis/wsdd/" xmlns:java="/axis/wsdd/providers/java">
<service name="HelloAxis" provider="java:RPC">
  <parameter name="className" value="cn.freshpower.services.HelloAxis"/>
  <parameter name="allowedMethods" value="*"/>
</service>
</deployment>
    在同目录下新建deploy.bat批处理文件,内容如下:
@echo.
@echo 生成的server-config.wsddTomcat发布的应用下
@echo.下载apache
set Axis_Lib=D:\projects\1Server\webapp\WEB-INF\lib
set Java_Cmd=java -dirs=%Axis_Lib%
set Axis_Servlet=localhost:8080/1Server/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
@pause
    运行deploy.bat文件
6. 在执行完后去%TOMCAT_HOME%\webapps\1Server\WEB-INF 文件夹下到server-config.wsdd文件,把该文件复制到1Server\webapp\WEB-INF下。
我们打开该文件可以看到下面段落:
    这就是我们刚才发布的web service的描述段落。
7. 刷新localhost:8080/1Server/servlet/AxisServlet 查看Web Service列表。
点击(wsdl)可以查看该Web Service对应的wsdl文件。
1.2.2 带自定义对象传递的Web Service
1. 新建User.java文件
package cn.freshpower.bean;
public class User {
    public User(){
    }
    public User(String name,String age){
        this.name = name;
        this.age = age;
    }
    public String name;
    public String age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
}
2. 新建HelloAxisObj.java
package cn.freshpower.services;
import java.util.ArrayList;
import java.util.List;
import cn.freshpower.bean.User;
public class HelloAxisObj {
public User getUser(User user){
        System.out.println("------------------axis2 被调用----------------");
        user.setName("ujjboy");
        user.setAge("22");
        return user;
    }
    public List<String> getList(){
        System.out.println("------------------axis2 被调用----------------");
        List<String> list = new ArrayList<String>();
        list.add("aaaaaaa");
        list.add("bbbbbbb");
        list.add("ccccccc");
        return list;
    }
}
3. 我们可以直接修改server-config.wsdd文件来发布Web Service
直接插入下面段落来发布。
<service name="HelloAxisObj" provider="java:RPC">
  <parameter name="allowedMethods" value="*"/>
  <parameter name="className" value="cn.freshpower.services.HelloAxisObj"/>
</service>
<beanMapping qname="scNS:List" xmlns:scNS="urn:BeanService" languageSpecificType="java:java.util.List" />
<beanMapping qname="scNS:User" xmlns:scNS="urn:BeanService" languageSpecificType="java:cn.freshpower.bean.User" />
4. 重启Tomcat服务器。
5. 刷新localhost:8080/1Server/servlet/AxisServlet 查看Web Service列表。
点击(wsdl)可以查看该Web Service对应的wsdl文件。
1.3 XFire发布Web Services
1.3.1 传递简单数据类型的Web Service
1. XFire依赖的jar包放入lib文件夹下。
2. l中加入如下代码:
   
    <servlet>
        <servlet-name>XFireServlet</servlet-name>
        <servlet-class>
        ansport.http.XFireConfigurableServlet
        </servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>XFireServlet</servlet-name>
        <url-pattern>/servlet/XFireServlet/*</url-pattern>
    </servlet-mapping>
   
    <servlet-mapping>
        <servlet-name>XFireServlet</servlet-name>
        <url-pattern>/service/*</url-pattern>
    </servlet-mapping>
   

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