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サービス側
サービスインタフェースの露出
サービスインタフェース実装クラス
CXFサービス公開クラス
KSOAP 2クライアントコール
KsoapClientでrequest.addProperty(「パラメータ名」、渡された値);
パラメータ名は、Webサービス側が発行するWSDLファイルのメソッドパラメータと同じ名前でなければなりません.
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サービス側
サービスインタフェースの露出
- @WebService(targetNamespace="http://www.cnc.com",name="UserService")
- public interface UserService {
- /* @WebResult(name = "return", targetNamespace = "http://www.cnc.com")
- @Action(input = "urn:sayHello", output = "sayHelloResponse")
- @RequestWrapper(localName = "sayHello", targetNamespace = "http://www.cnc.com")
- @WebMethod(action = "urn:sayHello")
- @ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "http://www.cnc.com")*/
- public String sayHello( @WebParam(name = "args0", targetNamespace = "http://www.cnc.com")
- java.lang.String args0
- );
- }
サービスインタフェース実装クラス
- @WebService(endpointInterface="com.cncsoft.provide.service.UserService",targetNamespace="http://www.cnc.com")
- public class UserServiceBean implements UserService{
-
- public String sayHello(String args0) {
-
- return "This is sayHello First " + args0;
- }
- }
CXFサービス公開クラス
- public class PubWebService {
-
-
- protected PubWebService() throws Exception{
- UserServiceBean helloWorld = new UserServiceBean();
- String address = "http://192.168.1.71:9000/cxf";
-
- //Endpoint.publish(address, helloWorld);
- //
- JaxWsServerFactoryBean server = new JaxWsServerFactoryBean();
- server.setServiceClass(helloWorld.getClass());
- server.setAddress(address);
- server.create();
- }
-
- public static void main(String[] args) throws Exception{
- new PubWebService();
- }
-
- }
KSOAP 2クライアントコール
- public class KsoapClient {
-
-
- public static void main(String[] args) throws IOException, XmlPullParserException {
- SoapObject request = new SoapObject("http://www.cnc.com", "sayHello");
- request.addProperty("args0","z");
-
- // WebService SOAP
- SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
- envelope.bodyOut = request;
- // HttpTransportSE , WebService WSDL URL
- HttpTransportSE ht = new HttpTransportSE("http://192.168.1.71:9000/cxf?wsdl");
- // call WebService
- ht.call(null, envelope);
- // getResponse WebService
- Object soapObject = envelope.getResponse();
- System.out.println(soapObject);
-
- }
- }
KsoapClientでrequest.addProperty(「パラメータ名」、渡された値);
パラメータ名は、Webサービス側が発行するWSDLファイルのメソッドパラメータと同じ名前でなければなりません.