axis调用webservice相关工具类

3 篇文章 0 订阅
1 篇文章 0 订阅
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 + "]}" ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值