danchaofan

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            14 Posts :: 20 Stories :: 3 Comments :: 0 Trackbacks
          調用webservice,可以首先根據(jù)wsdl文件生成客戶端,或者直接根據(jù)地址調用,下面討論直接調用地址的兩種不同方式:axis和Soap,soap方式主要是用在websphere下

          axis方式調用:

           

          import java.util.Date;

          import java.text.DateFormat;

          import org.apache.axis.client.Call;

          import org.apache.axis.client.Service;

          import javax.xml.namespace.QName;

          import java.lang.Integer;

          import javax.xml.rpc.ParameterMode;

           

          public class caClient {

                      

                 public static void main(String[] args) {

           

                        try {

                               String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";

                               Service service = new Service();

                               Call call = (Call) service.createCall();

                               call.setTargetEndpointAddress(endpoint);

                               call.setOperationName("addUser");

                               call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,

                                             javax.xml.rpc.ParameterMode.IN);

                               call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);

                               call.setUseSOAPAction(true);

                               call.setSOAPActionURI("http://www.my.com/Rpc");

                               //Integer k = (Integer) call.invoke(new Object[] { i, j });

                               //System.out.println("result is  " + k.toString() + ".");

                               String temp = "測試人員";

                               String result = (String)call.invoke(new Object[]{temp});

                               System.out.println("result is "+result);

                        }

                        catch (Exception e) {

                               System.err.println(e.toString());

                        }

                 }

          }

          soap方式調用

          調用java生成的webservice

          import org.apache.soap.util.xml.*;

          import org.apache.soap.*;

          import org.apache.soap.rpc.*;

           

          import java.io.*;

          import java.net.*;

          import java.util.Vector;

           

          public class caService{

                 public static String getService(String user) {

                 URL url = null;

                 try {

                     url=new URL("http://192.168.0.100:8080/ca3/services/caSynrochnized");

                 } catch (MalformedURLException mue) {

                    return mue.getMessage();

                   }

                       // This is the main SOAP object

                 Call soapCall = new Call();

                 // Use SOAP encoding

                 soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

                 // This is the remote object we're asking for the price

                 soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");

                 // This is the name of the method on the above object

                 soapCall.setMethodName("getUser");

                 // We need to send the ISBN number as an input parameter to the method

                 Vector soapParams = new Vector();

           

                 // name, type, value, encoding style

                 Parameter isbnParam = new Parameter("userName", String.class, user, null);

                 soapParams.addElement(isbnParam);

                 soapCall.setParams(soapParams);

                 try {

                    // Invoke the remote method on the object

                    Response soapResponse = soapCall.invoke(url,"");

                    // Check to see if there is an error, return "N/A"

                    if (soapResponse.generatedFault()) {

                        Fault fault = soapResponse.getFault();

                       String f = fault.getFaultString();

                       return f;

                    } else {

                       // read result

                       Parameter soapResult = soapResponse.getReturnValue ();

                       // get a string from the result

                       return soapResult.getValue().toString();

                    }

                 } catch (SOAPException se) {

                    return se.getMessage();

                 }

              }

          }

          返回一維數(shù)組時

          Parameter soapResult = soapResponse.getReturnValue();

          String[] temp = (String[])soapResult.getValue();

           

          調用ASP.Net生成的webservice

          private String HelloWorld(String uri, String u) {

                        try {

                               SOAPMappingRegistry smr = new SOAPMappingRegistry();

                               StringDeserializer sd = new StringDeserializer();

                               ArraySerializer arraySer = new ArraySerializer();

                               BeanSerializer beanSer = new BeanSerializer();

                               smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName(

                                             "http://tempuri.org/", "HelloWorldResult"), String.class,

                                             null, sd);

                               smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName(

                                             "http://tempuri.org/", "temp"), String.class,

                                             beanSer, beanSer);

           

                               URL url = new URL(uri);

                               Call call = new Call();

                               call.setSOAPMappingRegistry(smr);

                               call.setTargetObjectURI("urn:xmethods-Service1");

                               call.setMethodName("HelloWorld");

                               call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

           

                               Vector soapParams = new Vector();

                               soapParams.addElement(new Parameter("temp", String.class, u, null));

                               call.setParams(soapParams);

           

                               Response soapResponse = call.invoke(url,"http://tempuri.org/HelloWorld");

           

                               if (soapResponse.generatedFault()) {

                                      Fault fault = soapResponse.getFault();

                                      System.out.println(fault);

                               } else {

                                      Parameter soapResult = soapResponse.getReturnValue();

                                      Object obj = soapResult.getValue();

                                      System.out.println("===" + obj);

                               }

                        } catch (Exception e) {

                               e.printStackTrace();

                        }

                        return null;

                 }
          posted on 2006-02-27 13:46 單炒飯 閱讀(1084) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 府谷县| 颍上县| 上犹县| 建昌县| 行唐县| 全南县| 平乡县| 桦甸市| 诏安县| 东安县| 宜春市| 德化县| 辽中县| 沈丘县| 洪泽县| 吴江市| 出国| 肃北| 威宁| 中山市| 湘乡市| 凤台县| 交城县| 福泉市| 玉山县| 米林县| 荆门市| 特克斯县| 平舆县| 子长县| 凉山| 辽阳市| 庆安县| 尼玛县| 道真| 怀柔区| 迁西县| 彰化县| 夏河县| 隆子县| 安新县|