danchaofan

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

          axis方式調(diào)用:

           

          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 = "測(cè)試人員";

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

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

                        }

                        catch (Exception e) {

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

                        }

                 }

          }

          soap方式調(diào)用

          調(diào)用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ù)組時(shí)

          Parameter soapResult = soapResponse.getReturnValue();

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

           

          調(diào)用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) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 泽州县| 嘉荫县| 德阳市| 泸水县| 潍坊市| 洪江市| 伽师县| 云林县| 牡丹江市| 博乐市| 商南县| 阿荣旗| 锡林浩特市| 内乡县| 长宁区| 七台河市| 苍南县| 武强县| 深泽县| 改则县| 柘城县| 连南| 孝感市| 鸡东县| 海晏县| 高青县| 红桥区| 子洲县| 云霄县| 乐至县| 江都市| 泽普县| 淮南市| 重庆市| 怀远县| 久治县| 庄浪县| 锡林浩特市| 河池市| 连州市| 民县|