webservice Axis 小結

webservice 是分散式應用程序的發展趨勢。只要webservice公開了服務接口,遠程客戶端就能夠調用服務。幾乎全部企業內部系統之間的交互都會用到webservice。java

webservice更多的是一種標準,而不是一種具體的技術。java中實現webservice的框架不少,如:Axis,Xfire,CXF等,其中較成熟的是Axis,其實只要掌握了一種,其餘的都比較類似。web

下面主要來講明Axis的實現:apache

1.準備工做:tomcat

Axis是Apache SOAP的一個實現,因此你們能夠去Apache官網下載所要的jar包,固然能夠直接百度或谷歌出來。網絡

http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 這是官網下載地址,可是好像用不了...可是網絡的力量是巨大的,http://pan.baidu.com/share/link?shareid=489426&uk=2047286654 這個是能夠用的,感謝好心人的分享。app

在解壓的目錄下有一個webapps的目錄,這裏面就有咱們要的jar包了,能夠將webapps下的axis部署到tomcat下(直接複製到tomcat的webapps目錄下),而後訪問http://127.0.0.1:8080/axis框架

點擊Validation 就能看到所需jar包是否都有,不全的話就要另外下載了。webapp

2.webservice實例:ide

2.1新建一個工程webservice,在web.xml中添加servleturl

  <!-- 增長  AxisServlet-->
  <servlet>  
     <servlet-name>AxisServlet</servlet-name>  
     <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
      <servlet-name>AxisServlet</servlet-name>  
      <url-pattern>/services/*</url-pattern>  
  </servlet-mapping> 

 

2.2添加server-config.wsdd文件:

<?xml version="1.0" encoding="gb2312"?>  
        <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">    
          
        <globalConfiguration>  
          <parameter name="sendMultiRefs" value="true"/>  
          <parameter name="disablePrettyXML" value="true"/>  
          <parameter name="dotNetSoapEncFix" value="true"/>  
          <parameter name="enableNamespacePrefixOptimization" value="false"/>  
          <parameter name="sendXMLDeclaration" value="true"/>  
          <parameter name="sendXsiTypes" value="true"/>  
          <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>  
        </globalConfiguration>  
          
          <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>    
          <service name="HelloWebservice" provider="java:RPC"> 
             <parameter name="className" value="com.dcstudio.HelloAxis"/>  
             <parameter name="scope" value="request"/>  
             <parameter name="allowedMethods" value="*"/>  
             <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>  
          </service>    

<!--紅色的屬性根據具體狀況變更,value="*"表示能夠訪問全部的方法,固然亦能夠指定一個-->
          <transport name="http">    
             <requestFlow>    
                <handler type="URLMapper"/>    
             </requestFlow>    
          </transport>    
        </deployment>  

 

2.3編寫服務端代碼:

package com.dcstudio;

import org.apache.log4j.Logger;

public class HelloAxis {
    private static final Logger logger = Logger.getLogger(HelloAxis.class);
    
    public String AxisTest(String s){
        System.out.println("client:"+s);
        String str = "Hello Webservice !!";
        return str;
    }
    
}

 

3.新建客戶端項目webservice_client

3.1新建客戶端訪問代碼:

package com.dcstudio;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;


/**
 * webservice的客戶端程序
 * @author Administrator
 *
 */
public class Client {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String url="http://127.0.0.1:8080/webservice/services/HelloWebservice";
        Service ser=new Service();  
        try {  
            Call call=(Call)ser.createCall();  
            call.setTargetEndpointAddress(url);  
            // call.setOperationName(new  QName(targetEndPoint,  "hello" ));   
            call.setOperation("AxisTest");   
            String result=(String)call.invoke(new Object[]{new String("I'm client")});  
            System.out.println("result="+result);     
 
        } catch (ServiceException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        catch (RemoteException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }

}

4.部署工程,訪問驗證

相關文章
相關標籤/搜索