java程序访问webServices

需要导入四个ja包
axis.jar、commons-discovery-0.2.jar、jaxrpc.jar、wsdl4j-1.6.2.jar
然后调用下面的方法:

     * 调用Webservice接口
     * 
     * @param url
     *            请求服务的URL
     * @param operationName
     *            调用方法名
     * @param parameterName
     *            参数类型
     * @param parameterValue
     *            方法参数
     * @return 返回结果
     * @throws ServiceException
     * @throws MalformedURLException
     * @throws RemoteException
     */
    public static String getWebservice(String url, String operationName,String parameterName, String parameterValue) {
        String ret = "";
        try {
            // 创建service对象,通过axis自带的类创建
            Service s = new Service();

            // 创建服务方法的调用者对象call,设置call对象的属性
            Call call = (Call) s.createCall();
            call.setTargetEndpointAddress(new URL(url));// 给call对象设置请求的URL属性
            call.setOperationName(operationName);// 给call对象设置调用方法名属性
            call.addParameter(parameterName, XMLType.XSD_STRING, ParameterMode.IN);// 给call对象设置方法的参数名、参数类型、参数模式
            call.setReturnType(XMLType.SOAP_STRING);// 设置调用方法的返回值类型
            // 通过invoke方法调用webservice
            ret = (String) call.invoke(new Object[] { parameterValue });// 调用服务方法
        } catch (Exception e) {
            e.printStackTrace();return null;
        }
        return ret;
    }
 调用实例: getWebservice("url", "method","json", "{'name:'name','pwd':'123123'}");

曾经在调用这个方法的时候一直报错,说new Service()时,Service类找不到,当时项目是在Spring下,在方法中写一个Main方法是能调用的,能取到测试值,但是当tomcat跑起来的时候,从浏览器url调用到该方法是就报错了;找了很久的原因,有人说是Service和spring注解什么冲突,还有就是jar包不对,最后和同事一起找到了原因:是Eclipse软件的原因,

查了下原因’Gradle从中央库下载的jar文件在系统的其它目录,使用gradle eclipse添加Eclipse支持时,jar文件是以外部依赖的形式导入的。Eclipse将web项目发布到Tomcat时,是不会自动发布这些依赖的。

可以通过Eclipse在项目上右击 - Propertics - Deployment Assembly,添加“Java Build Path Entries”,添加所有依赖的jar包,就可以在发布时自动发布外部依赖的jar包。‘
我当时把软件换成MyEclipse也好了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值