当前位置 : 主页 > 网页制作 > Nodejs >

axis调用webservice相关工具类

来源:互联网 收集:自由互联 发布时间:2021-06-24
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
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 + "]}" ;
网友评论