ArcGIS Server的服务可以通过Local或者Internet两种方式进行连接,Local方式直接连接到SOM上,本地的对象如何和SOM进行交互呢?事实上是通过AO进行交互的,所以你必须在本地有AO对象才可以进行连接,我们平常使用ArcCatlog就可以这样连接,或者通过Engine也可以进行这样的连接。而Internet方式直接连接到Web Service的引用地址,它是通过本地对象连接的,对于Java ADF而言,本地对象表示连接ArcGIS Server的类存在于本地JRE中。Local连接可以改变Server Object的状态,而Internet连接由于只是通过SOAP API进行访问,所有的交互都是无状态的。
对于SOAP的支持是在AO这一级,所以处理每一次SOAP请求,都会需要AO的介入。有两个接口特别要注意一下,一个是IServiceCatalogAdmin,一个是IRequestHandler,IRequestHandler我们已经在上面一节提到过,而IserviceCatalogAdmin是用来得到Server Object所提供服务的WSDL的。
SOM用来向客户端提供WSDL,所有支持的服务类型的WSDL保存在ArcGIS Server的XMLSchema目录下。
我们可以使用IServiceCatalogAdmin接口得到所有服务类型的WSDL,如下面的代码所示:
[Copy to clipboard] [ - ]
CODE:
private void getWSDL(String domain,String username,String password,String myserver){
ServerInitializer initializer = new ServerInitializer();
initializer.initializeServer(domain,username, password);
ServerConnection gisconnection;
try {
gisconnection = new ServerConnection();
gisconnection.connect(myserver);
// Get reference to ServerObjectManager class.
IServerObjectManager som =gisconnection.getServerObjectManager();
IServerContext serverContext = som.createServerContext("usa", "MapServer");
IServiceCatalogAdmin2 isc = (IServiceCatalogAdmin2)serverContext.createObject(ServiceCatalog.getClsid());
// Catalog WSDL
byte[] bitscatalog = isc.getCatalogDescriptionDocument("Catalog","http://localhost");
String catalog_wsdl = new String(bitscatalog,"UTF8");
System.out.println(catalog_wsdl);
// Service WSDL
byte[] bitsservice =isc.getDescriptionDocument("usa", "MapServer","http://localhost");
String service_wsdl = new String(bitsservice, "UTF8");
System.out.println(service_wsdl);
} catch (UnknownHostException
e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
事实上,ArcGISServer每一个ServerObject都实现了IRequestHandler接口,都可以响应SOAP的请求,可以使用下面的方法得到ServerObject的IRequestHandler,并且得到当前地图的Default Map Name.
[Copy to clipboard] [ - ]
CODE:
private void getMapName(IServerContext serverContext){
IRequestHandler irh;
try {
irh =(IRequestHandler)serverContext.getServerObject();
String soap_request ="<?xml version='1.0' encoding='utf-8' ?>";
soap_request +="<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:tns='http://www.esri.com/schemas/ArcGIS/9.2'>";
soap_request +="<soap:Body>";
soap_request +="<tns:GetDefaultMapName>";
soap_request +="</tns:GetDefaultMapName>";
soap_request +="</soap:Body>";
soap_request +="</soap:Envelope>";
String soap_response =irh.handleStringRequest("map,query,data", soap_request);
} catch (AutomationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
所以,ArcGIS Server处理SOAP请求的能力是与生俱来的,从Server Object诞生那一天起,它就能处理SOAP请求。从而使通过Web Service的方式调用GIS功能变得异常简单。当然,我们一般都不会想Server Object直接发送请求,根据WSDL的描述,通过发送和接受SOAP请求来访问ArcGIS Server工作量十分巨大,那么我们来看看如何在ADF中使用Web Service。
分享到:
相关推荐
1、前言------为什么我们选择JSF,而不是其它framework 1 ...28、ArcGIS Server Java讲座:Born For SOA--Server对于SOAP的支持 81 29、Server Java开发--Born for SOA系列 通过代理类访问ArcGIS Server Web Service 84
从最近提出的关于辅助场的线性公式开始,我们研究Born和Born-Infeld理论的n场推广。 在此描述中,拉格朗日向量场强度是二次方的,并且相应的非线性理论的对称性(包括特征自对偶性)表现为壳对偶对称性,并取决于...
研究表明,强极端的宇宙检查(SCC)可能会被近乎极端的Reissner-Nordstrom-de Sitter黑洞中的标量场所破坏。... 此外,对于足够小的b,SCC总是可以在具有固定电荷比的近乎极端的Born-Infeld-de Sitter黑洞中恢复。
利用两点相关函数和全息纠缠熵等非局部可观测性,我们研究了... 对于bQ> 0.5的情况,其中b是Born-Infeld参数,Q是黑洞的电荷,发现其相结构类似于Van der Waals相变,即黑洞先经历 有序相变和二次相变在达到稳定之前
漏洞利用 lsploit为实战而设计的渗透测试框架,配合httpx、asyncio拥有高性能,功能丰富,结合最新漏洞通告,可自行组装exp,poc安装git clone ...
Born in Death - Nora Roberts.mobi
在这封信中,我们首先研究具有非线性Born-Infeld(BI)规范场的Lifshitz-dilaton全息超导体,并针对Lifshitz动态指数z和非线性参数b的不同值获得系统的临界温度。 我们发现,对于b的固定值,临界温度随z的增加而降低...
我们研究了用有限半径等温腔嵌入的渐近de Sitter黑洞的热力学行为,用Born-Infeld规范场代替了普通的Maxwell场。 我们发现,Born-Infeld理论的非线性导致规范集合中折返相变的存在,而折返相变的存在和性质取决于该...
ladygaga11年最新专辑主打歌born this way mvladygaga11年最新专辑主打歌born this way mv
发展第一次> ./scripts/provision.sh> source /tmp/born-gosu-gaming/asdf/asdf.sh> mix deps.get本地运行> source /tmp/born-gosu-gaming/asdf/asdf.sh> iex -S mix本地测试> source /tmp/born-gosu-gaming/asdf/...
标题“born-again-neural-network”暗示我们正在讨论一种神经网络技术,可能是一种网络结构的重用或优化方法。在深度学习领域,这种概念通常被称为迁移学习或模型复用。描述中的“复制纸张”可能是指研究论文或者...
具有反作用的Gauss-Bonnet黑洞时空中Born-Infeld电磁场全息超导的解析研究,姚伟平,荆继良,本文解析地研究了具有反作用的Gauss-Bonnet黑洞时空中Born-Infeld电磁场全息超导。我们注意到对于这种复杂系统解析方法...
在本文中,我们在存在Born-Infeld非线性电动力学的情况下研究了重力。 首先,我们获得与此重力相关的度量函数,并研究解的几何形状,发现原点处存在必不可少的奇点(r = 0)。 将会显示,由于大部分的贡献,视野的...
我们从Born-Infeld电动力学研究了爱因斯坦-轴距AdS黑洞。 分析计算了双边界理论的各种直流输运系数。 直流电导率取决于温度,与RN-AdS黑洞相比,这是一种新颖的特性。 分析了Born-Infeld参数对输运系数的影响。 此外...
在本文中,我们在不同的维度上构造了Lovelock–Born–Infeld标量重力的新毛状黑洞。 我们研究了黑洞的层位结构,发现黑洞可能具有三个层位,两个层位或一个层位。 我们给出热力学量并检查第一定律。 我们研究了T–S...