ksoap 2呼び出しwebservice(cxfフレームワーク)

8487 ワード

KSoap 2 Androidは、Androidプラットフォーム上の効率的で軽量なSOAP開発パッケージです.Android上のKSoap 2の移植バージョンに等しい.したがって、クライアントを独立して開発テストを行うことができます.
2つのコンポーネント
1 KSOAP 2クライアント(Android 2対応)
SOAP 2ダウンロードアドレス:http://code.google.com/p/ksoap2-android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount
2 Cxf2.6 javaサービス
   Cxf2.6ダウンロード先:http://www.apache.org/dyn/closer.cgi?path=/cxf/2.6.6/apache-cxf-2.6.6.zip 
主にKSOAPを使用してcxfパブリケーションのウェブサービスを呼び出す方法について説明します.
JAvaサービス側
サービスインタフェースの露出

  
  
  
  
  1. @WebService(targetNamespace="http://www.cnc.com",name="UserService")  
  2. public interface UserService {  
  3.     /* @WebResult(name = "return", targetNamespace = "http://www.cnc.com")  
  4.      @Action(input = "urn:sayHello", output = "sayHelloResponse")  
  5.      @RequestWrapper(localName = "sayHello", targetNamespace = "http://www.cnc.com")  
  6.      @WebMethod(action = "urn:sayHello")  
  7.      @ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "http://www.cnc.com")*/ 
  8.     public String sayHello( @WebParam(name = "args0", targetNamespace = "http://www.cnc.com")  
  9.         java.lang.String args0  
  10.     );  

 
サービスインタフェース実装クラス

  
  
  
  
  1. @WebService(endpointInterface="com.cncsoft.provide.service.UserService",targetNamespace="http://www.cnc.com")  
  2. public class UserServiceBean implements UserService{  
  3.  
  4.      public String sayHello(String args0) {  
  5.            
  6.         return "This is sayHello First " + args0;  
  7.     }  

 
CXFサービス公開クラス

  
  
  
  
  1. public class PubWebService {  
  2.  
  3.        
  4.     protected PubWebService() throws Exception{  
  5.             UserServiceBean helloWorld = new UserServiceBean();  
  6.             String address = "http://192.168.1.71:9000/cxf";  
  7.            
  8.             //Endpoint.publish(address, helloWorld);  
  9.             //  
  10.             JaxWsServerFactoryBean server = new JaxWsServerFactoryBean();  
  11.             server.setServiceClass(helloWorld.getClass());  
  12.             server.setAddress(address);  
  13.             server.create();  
  14.         }  
  15.           
  16.         public static void main(String[] args) throws Exception{  
  17.             new PubWebService();  
  18.         }  
  19.  
  20. }  

 
KSOAP 2クライアントコール

  
  
  
  
  1. public class KsoapClient {  
  2.  
  3.    
  4.     public static void main(String[] args) throws IOException, XmlPullParserException {  
  5.         SoapObject request = new SoapObject("http://www.cnc.com""sayHello");   
  6.         request.addProperty("args0","z");    
  7.            
  8.         // WebService SOAP  
  9.         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);    
  10.         envelope.bodyOut = request;  
  11.         // HttpTransportSE , WebService WSDL URL  
  12.         HttpTransportSE ht = new HttpTransportSE("http://192.168.1.71:9000/cxf?wsdl");  
  13.         // call WebService  
  14.         ht.call(null, envelope);  
  15.         // getResponse WebService  
  16.         Object soapObject = envelope.getResponse();  
  17.         System.out.println(soapObject);  
  18.  
  19.     }  
  20. }  

KsoapClientでrequest.addProperty(「パラメータ名」、渡された値);
パラメータ名は、Webサービス側が発行するWSDLファイルのメソッドパラメータと同じ名前でなければなりません.