首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> GIS 专区 -> 文章内容 退出登录 用户管理
栏目导航
· VC++专区 · V B 专区
· GIS 专区 · PDA 专区
· 其他编程 · 网站开发类
· 数据库类 · 软件应用
· 网络安全 · 论文专区
· 综合资讯
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· Mapbasic参考手册索...
· MapX应用开发中文讲...
相关文章
· 执行常见的数据库任...
· 操作SQL Server Mob...
· ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· [图文] ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· [图文] ArcGIS Server Java...
· ArcGIS Server Java...
Server Java开发--Born for SOA系列 通过代理类访问ArcGIS Server Web Service
作者:不详  来源:vscodes.com整理  发布时间:2007-6-29 15:33:34  发布人:Polaris

减小字体 增大字体

我们现在知道,ArcGIS Server的处理SOAP请求的能力在Server Object级别就已经实现了,所以我们可以不通过Web Service的方式,而通过直接发请求到Server Object的方式实现开发,只是这样太过麻烦。
好在ArcGISServer在发布每一个Service的时候,也同时发布了一个Web Service,使我们可以通过Web Services的方式来直接访问Service。图16.1就演示了一个Map ServiceWebService入口:
web_service_url.jpg (54.67 KB)
2007-5-11 09:26

这是ArcGISServer提供的Web Service的引用地址,在第一节里面我们已经知道,我们可以通过在JAVA中创建代理类和.NET中添加Web引用的方式访问这个Web服务。当然,最后对于SOAP的请求的处理还是通过Server Object来执行的。
          在使用ESRI提供的类包之前,我们不妨自己来试试,通过特定的工具来根据WSDL生成本地代理类。AXIS2提供的WSDL2JAVA是一个很好的工具,生成的JAVA类的代码多达7万行。里面包含了所有需要访问这个Web Service所需要的一切类和方法。这些方法包括Identify,Find,QueryFeatureCount等,这些方法的参数和返回值,也作为内部类包含在该方法所在类中。需要特别指出的是:在访问ArcGIS Server的Web Service的时候,在本地JRE环境中,只需要有AXIS的类库和标准的JRE库即可,不需要任何其他的AO类或者代理类,这极大地提高了部署的灵活性。那么我们使用代理类来调用该Web Services的一个QueryFeatureCount的一个功能:
   


packageedu.zju.esrisvs;

importjava.rmi.RemoteException;

import org.apache.axis2.AxisFault;

import edu.zju.esrisvs.World_MapServerStub.QueryFeatureCount;

import edu.zju.esrisvs. World _MapServerStub.QueryFeatureCountResponse;

import edu.zju.esrisvs. World _MapServerStub.QueryFilter;

public classWebSvsTest {

public WebSvsTest() {

super();

}

/**



          * @param args



          */



         public static void main(String[] args){

try {

World _MapServerStubstub=new World _MapServerStub();

QueryFilter qf=newQueryFilter();

QueryFeatureCountqfc=new QueryFeatureCount();

qfc.setLayerID(0);

qfc.setMapName("Layers");

qf.setWhereClause("1=1");

qfc.setQueryFilter(qf);

QueryFeatureCountResponseqfr=stub.QueryFeatureCount(qfc);

System.out.println(qfr.getResult());

} catch (AxisFault e) {

e.printStackTrace();

} catch (RemoteException e) {

e.printStackTrace();

}

}

}

这就是使用代理类来访问该Web Service的过程,用工具生成的代理类非常长,大概有几万行代码,我就不贴在这里了,大家可以用工具生成。大家可能注意到,很多类的名字如QueryFitler,和方法,如QueryFeatureCount,都跟ADF里面的一样,事实上ADF里面访问Web Service的包同样也是用AXIS生成的。你也可以在.NET里面,通过添加Web引用的方式来访问该ServerObjectWeb Service

End of《Server Java开发--Born for SOA系列 通过代理类访问ArcGIS Server Web Service》

[] [返回上一页] [打 印] [收 藏]
下一篇文章:TAPI基本函数
 
∷相关“Server Java开发--Born for SOA系列 通过代理类访问ArcGIS Server Web Service”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.