`
blueart
  • 浏览: 21903 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MapXtreme与Xfire集成解决之道

    博客分类:
  • java
阅读更多

              Mapxtreme与XFire的集成解决之道

昨天在做系统迁移的时候,发现系统中基于Xfirewebservice和基于MapXtreme4.71webgis不能集成在同一个项目中。为了负载均衡,我配置了3个服务器,分别完成地图渲染,数据挖掘(运行大数据量任务)web服务器,web服务器负责相应用户请求并把地图相关的请求发送到地图渲染服务器,大数据量请求发送到数据挖掘服务器。之前先完成Xfirewebservice部分,测试很好,之后我并集中精力开发webgis,在开发过程中我利用到了jdom1.0以前的版本,由于一直关注webgis,没有再去测试之前完成的webservice,结果在准备部署迁移的时候,发现先前测试良好的webservice部分报错说

java.lang.ClassNotFoundException: org.jdom.Content

感觉是jdom版本的问题,下面就是我的解决办法。

1.              更新到更高版本的Jdom,1.01.1均更新过,结果webgis部分在生成地图的时候报错,无法运行,出错如下:

java.lang.NoSuchMethodError:org.jdom.Element.addContent(Lorg/jdom/Element;)

2.              至此确定是jdom版本的问题,而且Jdom在这一点上没有实现向下兼容,但是webservicewebgis都是系统必须集成的模块,为此我想过降低Xfire的版本,发现Xfire依赖的jdom版本都是1.0;升级Mapxtreme版本,发现它用的版本都是jdom1.0版本以下。

3.              在网上搜索发现可以在jdom的源代码的org..jdom.ementjava类中添加几个如下方法:

public   Element addContent(Text text)  { this.content.add(text);

       return this;

    }

 

    public   Element addContent(Element element)  {

       this.content.add(element);

       return this;

    }

 

    public   Element addContent(ProcessingInstruction pi)     {

       this.content.add(pi);

       return this;

    }

 

    public   Element addContent(EntityRef entity)     {

       this.content.add(entity);

       return this;

    }

 

    public   Element addContent(Comment comment)     {

       this.content.add(comment);

       return this;

}

扩展org.jdom.output.XMLOutputter.java,添加如下方法:

public XMLOutputter(String indent, boolean newlines, String encoding) {

       this.currentFormat.indent = indent;

       this.currentFormat.encoding = encoding;

    }

 

    public XMLOutputter(String indent, boolean newlines) {

       this.currentFormat.indent = indent;

    }

 

    public XMLOutputter(String indent) {

       this.currentFormat.indent = indent;

    }

4.              当我把这些源代码添加到我的项目中测试的时候,发现问题依然没有解决,报出的错误是XMLOutputter中没有init方法,当时感觉可能改造也不能成功。到晚上10点钟,做最后尝试,经过fatjar成功打包成Jdom1.2(Jdom当前版本是1.1,似乎没有继续更新的势头,所以我个人定义版本位为1.2)。后加入到项目中后,mapxtremeXfire成功的集成进来了,终于可以安心的回宿舍睡觉了,呵呵。

     附件中是我扩展的Jdom1.2.jar,不知道这样做是不是违法的。

2
0
分享到:
评论
1 楼 zx20319 2010-04-23  
谢谢楼主  帮大忙了

相关推荐

    MapXtreme与Xfire集成时jdom .jar包

    MapXtreme与Xfire集成时jdom .jar包,xfire中用的是最新的jdom.jar,然而MapXtreme中用的是2003年的,但两者中任取其一都会冲突,在网上找到一个,综合两者的,

    mapXtreme 入门资料大全

    10. **集成其他系统**:MapXtreme可以无缝集成到其他企业系统,如ESRI的ArcGIS、Oracle Spatial等,提供跨平台的地图服务。 通过深入学习这份“MapXtreme入门资料大全”,你将能够理解MapXtreme的基本原理,掌握...

    基于MapXtreme的WebGIS解决方案

    该产品通过集成MapInfo和MapX的功能,使信息管理员能够在Web服务器上安装MapXtreme,并对其进行编程与管理。这样,用户便可以通过标准的Web浏览器访问MapXtreme,从而获得地图显示、专题地图制作、地理数据分析等一...

    MapXtreme内置控件命令代码

    它提供了丰富的API和控件,使得开发者能够轻松地在Web或桌面环境中集成交互式地图功能。本资源包含的是MapXtreme内置控件的源代码,这对于深入理解和自定义MapXtreme的应用是非常有价值的。 MapXtreme的核心特性...

    MapXtreme2008中文教程

    此外,教程还会涉及MapXtreme2008的API集成,包括JavaScript、.NET和Java版本,用户可以学习如何使用这些API来开发自定义的地图应用。通过实例代码,用户将学会如何添加标记、绘制图形、实现点击事件处理等功能,...

    MapXtreme API

    6. **集成其他系统**:MapXtreme API可以与常见的数据库系统(如Oracle、SQL Server、MySQL等)无缝集成,同时支持JDBC和ODBC,方便数据的存储和检索。此外,它还可以与其他企业级应用(如ERP、CRM)集成,扩展GIS...

    Mapxtreme6.7

    3. **Web服务集成**:MapXtreme 6.7支持SOAP和RESTful接口,可与Web服务无缝集成,实现地理数据的在线共享和交互。 4. **客户端组件**:提供了丰富的客户端控件,如Map Control,使得开发者可以轻松地在.NET应用...

    mapxtreme 桌面完整示例

    MapXtreme是一款强大的地图开发工具,主要用于构建桌面和移动应用程序中的地理信息系统(GIS)解决方案。这个"MapXtreme 桌面完整示例"提供了25个不同的实例,帮助用户深入理解和学习如何利用MapXtreme进行地图操作...

    mapxtreme最新包

    MapXtreme与MapInfo紧密集成,用户可以使用MapInfo进行地图编辑和分析,然后通过MapXtreme在Web上发布和交互。两者结合,可以实现从数据管理到应用发布的完整GIS流程。 6. **开发与集成**: 使用MapXtreme的开发...

    使用mapxtreme插件进行使用

    MapXtreme是一款由Esri公司开发的专业地图应用程序开发插件,主要用于构建地理信息系统(GIS)解决方案。它提供了丰富的地图渲染、数据管理、空间分析以及交互式地图服务等功能,广泛应用于Web应用程序和移动设备上...

    MapXtreme开发简介

    2. MapXtreme 2005 与 Visual Studio.Net 2003 无缝集成,使开发变得容易。 3. 遵循工业标准和 OGC 标准,提供了真正的互操作性。 4. 增强的功能特性能开发更为复杂而又灵活的系统。 MapXtreme 2005 SDK 是为熟悉 ...

    mapxtreme 实现专题图

    6. **交互性与动态更新**:MapXtreme支持地图的交互性,用户可以缩放、平移地图,同时专题图会相应地更新。此外,如果你的数据源是动态的,比如实时更新的数据库,你可以编写代码来实现专题图的实时更新。 7. **...

    MapXtreme API及代码实例

    9. **服务集成**:了解如何与Web服务(如WFS、WMS、KML等)进行集成,获取并显示来自这些服务的地图数据。 10. **性能优化**:探讨如何通过缓存、分块加载等技术提高地图应用程序的性能和响应速度。 代码实例是...

    MapXtreme 加载地图MapXtreme是MapInfo公司推出的一个组件

    1. **Web页面集成**:MapXtreme为Web应用提供了丰富的控件集,包括`MapInfo.Web.UI.WebControls`和`MapInfo.WebControls`。前者用于Web页面的开发,后者则更多地用于服务器端处理。例如,在使用`MapInfo.Web.UI....

    MapInfo MapXtreme for Java 培训教材

    本培训教材将深入讲解如何利用MapXtreme for Java实现高效的GIS解决方案。 一、MapXtreme for Java基础 MapXtreme for Java的核心是其地图引擎,它能够处理各种地理数据,包括矢量图层、栅格图层和地形数据。该软件...

    mapxtreme for java开发CS版之一

    标题“MapXtreme for Java开发CS版之一”暗示了我们即将探讨的是关于使用MapXtreme这款GIS(地理信息系统)软件的Java版本进行客户端(Client-Side,CS)开发的相关知识。MapXtreme是Extremesoft公司(现为...

    MapXtreme for java源码

    - MapXtreme可以与各种地图服务(如WMS、WFS)集成,获取和展示在线地图数据,也可以与GIS服务器(如ArcGIS Server)配合使用,进行数据交换和处理。 通过以上知识点的学习和实践,开发者可以利用MapXtreme for ...

Global site tag (gtag.js) - Google Analytics