arcims 两种连接方式(java connector,servlet connector)的一些比较- -
(1) java connector主要是利用ims自封装的一些java类(ConnectionProxy,Map)来实现,通过api方法进行调用,
举例如下:
ConnectionProxy mapCon=new ConnectionProxy();
if(connectiontype.equalsIgnoreCase("http"))
{
mapCon.setConnectionType(ConnectionProxy.HTTP);
URL url = new URL(host);
mapCon.setUrl(url);
}
else if (connectiontype.equalsIgnoreCase("tcp"))
{
mapCon.setConnectionType(ConnectionProxy.TCP);
mapCon.setHost(host);
}
mapCon.setPort(port);
mapCon.setService(datasource);
mapCon.setDisplayMessages(true);
map=new Map();
map.initMap(mapCon,750,false,false,false,false);
map.setHeight(option.getHeight());
map.setWidth(option.getWidth());
.................
map.refresh();
String mapurl=map.getMapOutput().getURL();
String legendurl=map.getLegend().getLegendOutput().getURL();
在此过程中,Map对象的方法主要工作为构造arcxml request,并解析arcxml response
优点:基于api接口实现起来方便易用
缺点:解析map对象,影响速度。且调用map.refresh()方法,默认为做两次arcims request. 第一次为遍历axl的request,第二次为实际的request.
(2)servlet connector主要通过向servlet地址发送请求,然后获得返回的url流,得到响应
举例如下:
String serverUrl="
http://localhost:8888/servlet/com.esri.esrimap.Esrimap?ServiceName=SantaClara";
URL imsURL =new URL(serverUrl);
URLConnection connection=imsURL.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
BufferedOutputStream bos = new BufferedOutputStream(connection.getOutputStream());
OutputStreamWriter out = new OutputStreamWriter(bos, "UTF8");
out.write(arcimsRequest, 0, arcimsRequest.length());
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8"));
String ln;
String tempString=null;
while ((ln = in.readLine()) != null)
{
if (tempString == null)
{
tempString = ln;
}
else
{
tempString = tempString + ln;
}
}
arcxmlReponseStr = tempString.trim();
out.close();
in.close();
其中arcimsRequest格式如下:
Arcxml request:
<?xml version="1.0" encoding="UTF-8"?>
<ARCXML version="1.1">
<REQUEST>
<GET_IMAGE autoresize="false">
<ENVIRONMENT>
<SEPARATORS cs=" " ts=";"/>
</ENVIRONMENT>
//scalebar is set
<LAYER id="8" name="LayerName" type="acetate" visible="true">
<OBJECT units="pixel">
<SCALEBAR antialiasing="true" barcolor="255,255,255" bartransparency="1.0" barwidth="12" coords="100.0 3.0" distance="0.0" font="Arial" fontcolor="0,0,0" fontsize="10" fontstyle="regular" mapunits="degrees" mode="cartesian" outline="255,255,255" overlap="true" precision="2" round="0.0" scaleunits="meters" screenlength="40" texttransparency="1.0"/>
</OBJECT>
</LAYER>
<PROPERTIES>
<ENVELOPE maxx="-121.87677055355464" maxy="37.33222499720282" minx="-121.90701583922555" miny="37.316082232930746"/>
<IMAGESIZE dpi="750" height="350" scalesymbols="false" width="500"/>
<BACKGROUND color="215,215,215"/>
<OUTPUT type="jpg"/>
<LEGEND antialiasing="false" autoextend="true" cansplit="false" cellspacing="2" columns="1" display="true" font="宋体" height="300" layerfontsize="12" reverseorder="false" splittext="(cont)" swatchheight="14" swatchwidth="18" title="图例" titlefontsize="15" valuefontsize="10" width="125"/>
<LAYERLIST dynamicfirst="false" nodefault="false" order="true">
<LAYERDEF id="0" name="boundary" visible="true"/>
<LAYERDEF id="1" name="tract" visible="true"/>
<LAYERDEF id="2" name="sc_streets" visible="true"/>
<LAYERDEF id="3" name="rivers" visible="false"/>
<LAYERDEF id="4" name="hospital" visible="true"/>
<LAYERDEF id="5" name="cities" visible="true"/>
<LAYERDEF id="6" name="topoq24" visible="false"/>
// scalebar is set
<LAYERDEF id="8" name="LayerName" visible="true"/>
</LAYERLIST>
</PROPERTIES>
</GET_IMAGE>
</REQUEST>
</ARCXML>
返回的arcxmlReponseStr ,格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<ARCXML version="1.1">
<RESPONSE>
<IMAGE>
<ENVELOPE minx="-121.907015839225" miny="37.3135677650819" maxx="-121.876770553554" maxy="37.3347394650516" />
<OUTPUT file="C:\oc4j\j2ee\home\default-web-app\output\SantaClara_CHXW24002560270.jpg" url="
http://chxw:8888/output/SantaClara_CHXW24002560270.jpg" />
<LEGEND file="C:\oc4j\j2ee\home\default-web-app\output\SantaClara_CHXW24002568263.jpg" url="
http://chxw:8888/output/SantaClara_CHXW24002568263.jpg" />
</IMAGE>
</RESPONSE>
</ARCXML>
通过xml parse解析即可得到输出url.
优点:向arcims应用服务器,只需请求arcxml request一次,只需调用自己的建构的arcimsrequest对象,此类对象为开源,可实现自优化
缺点:需要自己定义arcims request 对象,没有java connector简洁明了。
优化:可直接进行socket通信,通过tcp协议实现。
分享到:
相关推荐
4. **Java Web编程**:熟悉Servlet、JSP等Java Web开发技术,因为大部分ArcIMS Java Connector的应用都会基于这些技术构建。 5. **地图服务的创建与管理**:学习如何在ArcIMS服务器上发布地图服务,包括地图文档...
在本压缩包“基于ArcIMS Java Connector开发的WebGIS.zip”中,主要涉及的是使用ArcIMS Java Connector构建WebGIS(Web地理信息系统)的相关技术。WebGIS是将地理信息系统(GIS)的功能与Web技术相结合,使得用户...
- **Servlet Connector**:作为ArcIMS的默认连接器,它能在所有Viewers中工作。Servlet运行在服务器端,需要Servlet Engine支持。使用Servlet Connector能实现跨Web服务器和Viewer的兼容性,而创建站点时,通过...
此外,它还提供了多种连接对象,如ActiveX Connector、ColdFusion Connector、Java Connector和Servlet Connector,以便与不同的环境和应用进行集成。 **系统需求** 1. **硬件需求** - ArcIMS Application Server...
3. **连接器(Connector)**:作为Web服务器和应用服务器之间的桥梁,其中ServletConnector是默认选项,直接使用ArcXML与应用服务器进行通信。此外,还有更高级的连接器如ColdFusion连接器、ActiveX连接器、Java连接...
开发过程中,通常有两种方法:直接在JSP程序中引用Java Connector类库,或者创建一个Web Application。推荐使用Web Application,因为它允许每个应用独立管理自己的类库,便于系统维护。Web Application的目录结构...
- `ServletConnector_Res_en_US.properties` - `WMSEsrimap_prop` - 将这些文件复制到`<BeaWebLogicInstallation Directory>\user_projects\applications\<domain>\DefaultWebApp\WEB-INF\classes`文件夹下。 - *...
2. **复制文件**: 从ArcIMS的安装目录中复制`Servlet`文件夹下的`com`目录、`Esrimap_propServletConnector_Res.properties`、`ServletConnector_Res_en_US.properties`以及`WMSEsrimap_prop`(9.2版本可能不存在)...
如果希望利用Java的强大功能,可以考虑使用Servlet Connector或AppServerLink Connector。 - 在实际部署过程中,还需要考虑到安全性、性能优化等因素,确保选择的方案能够满足长期的业务需求和技术支持。
1. **Servlet Connector**: 是 ArcIMS 的默认连接器,适用于所有三种 Viewer,是基于 Java 的服务器端应用程序,需要 Servlet Engine 支持。它可以与多种 Web Server 结合,通过 ArcIMS Designer 可轻松创建站点,...
1. **Servlet Connector**: 默认的ArcIMS连接器,适用于所有三种Viewer。它需要Servlet Engine支持,允许与各种Web服务器和Viewer组合使用。通过ArcIMS Designer可以轻松创建和配置。 2. **ActiveX Connector**: ...
这可以通过定制ArcIMS的JavaConnector库实现,中间件作为Servlet部署在J2EE服务器上。每个MultiProtocol消息类型对应一个服务,服务处理特定的消息并调用JavaConnector的相关对象和方法,从而实现与ArcIMS服务器的...
为了简化地图发布的开发流程,ArcIMS提供了多种应用服务器连接器,如ActiveX Connector、JavaConnector等。这些连接器定义了大量的接口和数据类型,避免了直接使用ArcXML与ArcIMS通信的复杂性。 ##### 1.2 现有的...
### ArcIMS应用系统安装手册知识点解析 #### 一、软件需求 在安装ArcIMS应用系统前,需确保满足以下最低要求: - **操作系统**: 必须是Windows 2000及以上版本。 - **Web浏览器**: 支持Internet Explorer 5.0及以上...
- **要素地图服务(Feature Map Services)**:ArcIMS通过这种方式支持实时的要素流(Feature Streaming),允许客户端动态请求和处理地理空间数据。 - **WFS(Web Feature Service)**:OGC(开放地理空间联盟)...
本篇文档详细记录了一位技术人员在安装ARCIMS过程中遇到的问题及解决方案,尤其针对servlet for IIS安装失败后转向Apache和Tomcat的配置过程进行了详尽描述。以下是对该文档内容进行的知识点总结与解析。 #### 1. ...
Servlet Connector依赖于Servlet Engine,若Web服务器不内置此引擎,需要额外安装。这种连接器允许灵活的Web服务器和Viewer组合,且通过ArcIMS Designer可以轻松创建基础站点。 ActiveX Connector利用ASP进行网站...
6. **连接器**:ArcIMS 应用服务器连接器是不同应用程序与ArcIMS 之间的桥梁,包括Servlet Connector、Java Connector、ActiveX Connector等,以支持不同平台的集成。 7. **ArcXML**:ArcIMS 使用ArcXML作为其通信...