`

axis调用webservice相关工具类

阅读更多
1、axis调用webservice的方法
public static String getUnionCicWebserviceResult(String URL,String nameSpaceURL, String webMethod,Object[] params) {
                        org.apache.axis.client.Service s = new org.apache.axis.client.Service();
                        Call call;
                        String val = "";
                        try {
                                    call = (Call) s.createCall();
                                    call.setTargetEndpointAddress(new java.net.URL(URL));
                                    call.setOperationName(new QName(nameSpaceURL, webMethod));
                                    for (int i = 0; i < params.length; i++) {
                                                call.addParameter("arg" + i,org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);// 此处参数名字必须为arg0,arg1形式
                                    }
                                    call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
                                    val = (String) call.invoke(params);
                        } catch (javax.xml.rpc.ServiceException e) {
                                    e.printStackTrace();
                                    return val;
                        } catch (MalformedURLException e) {
                                    e.printStackTrace();
                                    return val;
                        } catch (RemoteException e) {
                                    e.printStackTrace();
                                    return e.getMessage();
                        }
                        return val;
            }
2、解析webservice返回的xml格式的方法
/**
             * 解析华西联合门诊返回的xml字符串
             * @param xmlStr
             * @return Map<String,Object>
             */
            @SuppressWarnings("unchecked")
            public static Map<String,Object> getUnionCicResponseMap(String xmlStr) {
                        Document doc = null;
                        Map<String,Object> map = new HashMap<String, Object>();
            try {
                                                doc = DocumentHelper.parseText(xmlStr);
            // 将字符串转为XML
            Element rootElt = doc.getRootElement();
            List<Element> childElements = rootElt.elements();
                        for (Element ele:childElements) {
            //                     if("acknowledgement".equals(ele.getName())){
                                                //解析xml格式标签中的属性
                                                List attrList = ele.attributes();
                                                for (int i = 0; i < attrList.size(); i++) {
                                                    Attribute item = (Attribute)attrList.get(i);
                                                    map.put(item.getName(), item.getValue());
                                                }                       
            //                     }
                                                            map.put(ele.getName(), ele.getStringValue());
                                                }
            } catch (DocumentException e) {
                        map.put("typeCode", "AE");
                        map.put("acknowledgement", e.getMessage());
                        e.printStackTrace();
                        return map;
            }
        return map;
    }
3、将数据库查询结果封装为json格式
StringBuilder sb = new StringBuilder();
                                                // 拼装病人信息
                                                for (int i = 0; i < inofList.size(); i++) {
                                                            sb.append("{");
                                                            final Set<String> keys = inofList.get(i).keySet();
                                                            for (final String key : keys) {
                                                                        final Object value = inofList.get(i).get(key);
                                                                        sb.append("\"");
                                                                        sb.append(key);
                                                                        sb.append("\"");
                                                                        if (value != null || !"null".equals(value)) {
                                                                                    sb.append(":\"");
                                                                                    sb.append(value);
                                                                                    sb.append("\",");
                                                                        } else {
                                                                                    sb.append(":\"\",");
                                                                        }
                                                            }
                                                            sb.setCharAt(sb.length() - 1, '}');
                                                            sb.append(",");
                                                }
                                                sb.setCharAt(sb.length() - 1, ' ');
                                                json = "{\"status\":1,\"info\":[" + sb + "]}";
分享到:
评论

相关推荐

    Java Axis 直接调用webservice 接口工具类

    Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;

    Axis WebService 技术指南,开发文档

    Axis中传递复杂对象和内部类 Axis中的handler、chain的特性 Axis中处理异常信息 Axis中传递文件信息 Axis常用命令介绍 Axis 提供的工具和调试 Axis 的wsdl生成代码 Axis的Header信息操作 .Net调用Axis出现的问题

    axis2;WebService

    Axis的辅助工具发布、调用WebService Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis ...

    webservice Axis2教程

    当然,也可以象第一个项目一样,直接通过HTTP SOAP协议调用WebService。在第二个项目中同时使用了这两种方式来实现。这两种调用方式分别封装在两组Model类中。可以通过配置 struts.xml文件来提定使用哪组模型类...

    使用axis2发布WebService简单示例

    NULL 博文链接:https://songjianyong.iteye.com/blog/1920078

    Java如何基于wsimport调用wcf接口

    wcf接口是由.net提供的webservice接口,一般是使用wsdl文件的样式发布,在wsdl文件中,包含该...将这些生成的文件放在相应项目,就可以像调用本地的类一样调用webservice提供给的方法了。 具体步骤: 1、通过w

    webservice

    cxf集成Spring发布发布webservice及axis远程调用webservic程序,提供自己封装的工具类。文件为整个工程目录可以直接运行

    WSDL2Java工具包

    几年前用java开发以及调用webservice服务都是比较复杂的事情,但现在已经变得很简单。Axis已经为我们做好了一切,我们只需要使用它的工具方法生成我们自己想要的webservice服务即可。这里只先讲一下通过WSDL描述,来...

    Axis1.4开发指南.pdf

    目 录 1.1.WEBSERVICE简介...................4.AXIS的常用的命令和调试工具的使用................72 4.1AXIS的常用命令:...............................72 4.2调试工具的使用.................................72

    WsdlUtil.rar

    java调用c#接口,带soaphead认证。 先用soapui工具,测试c#的webservice接口, WsdlUtil4Http类可以调用任何类型的webservice createXml这个方法,就是接soapui调用时的...另不家axis调用WsdlUtil类,可供使用。

    利用xfile构建webservice(服务端以及客户端)

    3、创建类定义.......................................................................................................................15 四、扩展1-使用xfire 插件创建客户端代码..............................

Global site tag (gtag.js) - Google Analytics