本帖最后由 a57397872 于 2011-10-25 07:39:44 编辑

解决方案 »

  1.   

    很想帮楼主解决此问题,但我不太愿意读别人的代码。再次给出我的方法,似乎调用webservice要简单些:
    1.进入控制台,使用jdk自带的JAX-WS框架生成调用webservice的存根,如下:
        wsimport -keep wsdl地址
    如果存在代理服务器,则:
        wsimport -httpproxy:192.168.2.1:808 -keep wsdl地址
    如此则会在当前目录下生成调用webservice的存根.2.在生成的java源文件中,除去ObjectFactory.java,Pageage-inf.java,XXXResponse等文件外,从其他文件中找到执行入口;或者直接从WSDL地址生成的Schema文档中找到调用方法;3.使用存根调用webservice,注意如果存在代理服务器的话,需要在调用前加入代码:
        System.getProperties().put("proxySet","true");
        System.getProperties().put("proxyHost","代理地址");
        System.getProperties().put("proxyPort","代理端口");4.有些代理在授权用户访问因特网之前,要求用户输入用户名和口令。如果您使用位于防火墙之内的Web浏览器,就有可能碰到过这种情况。以下是执行认证的方法:
        URLConnection connection=url.openConnection();
        String password="username:password";
        String encodedPassword=base64Encode(password);
        connection.setRequestProperty("Proxy-Authorization",encodedPassword);