|
yiczhu :
高手请帮忙看看[求助] 用applet做胖客户端开发,却发现,当mdf定义了图层标注后,地图就无法打开,如果没有定义图层标注可正常,部分代码如下: fileToLoad = getParamete("fileToLoad"," http://localhost:8080/map/map.mdf");
String m_mxtjURL=" http://localhost:8080/mapxtreme47/servlet/mapxtreme";
URL u = new URL(m_fileToLoad); URLConnection conn = u.openConnection(); isRemoteFile = conn.getInputStream(); myMap.getMapJ().loadMapDefinition(isRemoteFile); RendererParams rParams = new RendererParams(); rParams.setURL(m_mxtjURL); rParams.setMime("image/gif"); myMap.setRendererParams(rParams); 当我map.mdf定义的图层包含标注的时候出现如下:java.security.Acce ssControlException: access denied (java.net.SocketPermission localhost:8080 connect,resolve) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkConnect(Unknown Source) at sun.plugin.net.protocol.http.HttpURLConnection.checkPermission(Unknown Source) at sun.plugin.net.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at fsti.mapinfo.MapApplet1.init(MapApplet1.java:103) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 我发现mapxtreme47自带的SimpleMap的例子也存在这个问题,当有标注的时候就出不来 哪个高手帮忙看看!谢谢
Marsblade :
你把LocalHost改为IP地址试试,Applet不允许访问本地资源吧。
yiczhu :
确实正象楼上所说的,改成ip地址后,连图都出不来了,那文档所说的可以通过远程渲染的方式打开mdf是如何实现的?另外mapxtreme for Java?的安装目录下的自带的一个applet例子SimpleMap有没有人能成功运行?还有如果web服务器没有做配置的话可以通过 http://host/mapxtreme47/manager可以访问maxptreme for java?的管理器,而且该管理器也是一applet的方式运行,并且可以打开本地表等,是因为manager做了数字签名吗?那是不是以applet方式做胖客户,都应该做数字签名呢?请哪为高手给解答一下,谢谢!
qaz6759347 :
兄弟我也遇到过跟你的差不多的情况! 你看看你的world.mdf文件中的 <Connection> <Url>tab:e:/MapInfo/MapXtreme-4.7.1/examples/server/data?remote=http://localhost:8080/mapxtreme471/mapxtreme</Url> </Connection> 的格式是否象这样的?如果不是就改为这样。 文件中的每个上面的connection都要写成这样。
yiczhu :
问题解决了,写个心得吧,以便今后遇到类似问题的朋友们参考。 1、定义mdf定义的时候,要用"mapxtreme java manager web server"来定义,不能用“maxtreme java manager stand alone”来定义,如果不是,也可以按照楼上兄弟所说的那样,修改mdf定义。 2、访问applet的时候,要ip访问,不能用localhost来访问(我运行mapxtreme的时候就是犯了这个错误)。 3、由于是用远程渲染,所以要设置setRendererParams,并且要在loadMapDefinition之前,我原来的setRendererParams,是在loadMapDefinition之后。(这是我犯的第二个错误)。 其他的问题象缺少jar包,之类的错误,可以在控制台上看出来比较容易解决。 |