正文

使用java调用webservices2008-08-30 23:02:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/37978.html

分享到:

4.1 使用PowerBuilder调用    适用版本8.0 需下载Bulletin Web Services Toolkit 4.14.2使用java调用需要下载apache soap。下载地址:http://xml.apache.org/soap/index.html导入:import org.apache.soap.*;import org.apache.soap.rpc.*;例程:import java.io.*;import java.util.*;import java.net.*;import org.w3c.dom.*;import org.apache.soap.util.xml.*;import org.apache.soap.*;import org.apache.soap.encoding.*;import org.apache.soap.encoding.soapenc.*;import org.apache.soap.rpc.*;import org.apache.soap.transport.http.SOAPHTTPConnection; public class testClient {     public static void main(String[] args) throws Exception {         URL url = new URL ("http://192.168.0.4/yundan/service1.wsdl");//改成你的地址        SOAPMappingRegistry smr = new SOAPMappingRegistry ();        StringDeserializer sd = new StringDeserializer ();        smr.mapTypes (Constants.NS_URI_SOAP_ENC, new QName ("", "Result"), null, null, sd);         // 创建传输路径和参数        SOAPHTTPConnection st = new SOAPHTTPConnection();         // 创建调用        Call call = new Call ();        call.setSOAPTransport(st);        call.setSOAPMappingRegistry (smr);         call.setTargetObjectURI ("http://tempuri.org/message/");        call.setMethodName("addNumbers");        call.setEncodingStyleURI ("http://schemas.xmlsoap.org/soap/encoding/");         Vector params = new Vector();        params.addElement(new Parameter("NumberOne", Double.class, "10", null));        params.addElement(new Parameter("NumberTwo", Double.class, "25", null));        call.setParams(params);         Response resp = null;         try {          resp = call.invoke (url, "http://tempuri.org/action/Hello2.addNumbers");        }        catch (SOAPException e) {        System.err.println("Caught SOAPException (" + e.getFaultCode () + "): " + e.getMessage ());        return;        }         // 检查返回值        if (resp != null && !resp.generatedFault()) {        Parameter ret = resp.getReturnValue();        Object value = ret.getValue();         System.out.println ("Answer--> " + value);        }        else {            Fault fault = resp.getFault ();            System.err.println ("Generated fault: ");            System.out.println (" Fault Code = " + fault.getFaultCode());            System.out.println (" Fault String = " + fault.getFaultString());        }    }}

阅读(1423) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册