1. 程式人生 > >SuperMap iServer常見問題解答集錦 (四)

SuperMap iServer常見問題解答集錦 (四)

作者:朝陽

問:為什麼啟動 iServer 服務時,報端口占用錯誤,導致 iServer 服務啟動失敗?
答:SuperMap iServer 目前部署在 Tomcat 中,預設釋出的埠是 8090,該埠被佔用則無法正常啟動服務,請退出對應程式後再啟動 SuperMap iServer。目前已知的可能佔用 8090 埠的程式有:360 防毒軟體的自動升級程式。

問:為什麼執行“啟動 iServer 服務” 或 startup.bat 無法啟動服務?
答:啟動 SuperMap iServer 服務需要安裝 JRE 1.6 或以上版本和 SuperMap Objects Java 6R(SP2),並設定環境變數,設定 JAVA_HOME 為 JDK 目錄(如果安裝的是 JRE,則設定 JRE_HOME 為 JRE 目錄),設定 UGO_HOME 為 SuperMap Objects Java 的目錄,並在 PATH 環境變數中新增 %UGO_HOME%\Bin。

問:為什麼最後一步安裝 License Manager 的時候出現問題?
答:首先,License Manager 是獨立安裝的,不影響 SuperMap iServer Java 6R 的安裝。產品安裝包裡附帶的是最新的 SuperMap License Manager 6R 版本,如果原機器中已經裝有 SuperMap License Manager 6,會出現此問題。解決辦法:(1) 不必安裝安裝包裡附帶的新版本 License Manager ,繼續使用以前版本進行 License 配置;(2) 解除安裝以前版本的 License Manager,安裝本產品安裝包附帶的 SuperMap License Manager 6R,位置在“安裝包根目錄\LicenseManager”下。

問:如何釋出資料庫型的工作空間?
答:資料庫型的工作空間(SQL Server 工作空間、Oracle 工作空間)的釋出,目前不支援通過服務管理器進行,可在 XML 檔案(%SuperMap iServer Java_HOME%\webapps\iserver\WEB-INF\config\services.xml)中進行服務提供者的配置工作,然後再進行服務元件、服務介面的配置,參見6R幫助文件體系結構中各層的配置。

問:如何部署新的服務?
答:請參見6R幫助文件 GIS 服務的快速釋出、服務介紹、體系結構中各層的配置。

問:開啟幫助文件,發現都是亂碼,怎麼解決?
答:該問題是瀏覽器編碼導致的,解決辦法:開始執行裡面輸入regedit 進入登錄檔:找到:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International
你會看到右邊:AutoDetect
將AutoDetect 設定為1 (預設為0表示預設編碼,設定為1表示自動檢測)
注:如果沒有AutoDetect,那麼需要手動新建個DWORD(32-值),命名為AutoDetect,將其設定為1即可

問:使用SuperMap Deskpro.NET sp2版本切5.0快取放到SuperMap iServer Java 6R快取目錄下,客戶端呼叫地圖的時圖層引數的設定和切快取時的引數也一致,為什麼快取還是使用不上?
答:使用5.0快取需要在釋出地圖服務後在配置檔案iserver-services.xml(【SuperMap iServer Java 安裝目錄】\webapps\iserver\WEB-INF資料夾下)找到對應的節點,修改下的節點的值為5.0,預設動態快取的版本為4.0,如果沒有則新增該節點,儲存後重啟iServer服務。

問:Linux上配置許可管理工具怎麼讀取不到計算機名?
答:讀取不到計算機名是因為IP地址尚未與計算機名繫結的原因,可以修改/etc/hosts檔案,增加一行【IP 計算機名】實現繫結,例如【192.168.1.1 linux】繫結結束後,輸入hostname 計算機名,最後在輸入su回車即可。

問:使用32位SuperMap iServer Java 6R釋出地圖後瀏覽時,SuperMap iServer Java 6R崩潰,是什麼原因?如何處理?
答:如果地圖資料超過了2G,可能是記憶體不足造成的,建議更換64位SuperMap iServer Java 6R

問:下載的SuperMap iServer Java6R 英文版本,啟動服務後開啟服務管理頁面怎麼還是英文?
答:設定瀏覽器語言為英語,如IE瀏覽器在Internet選項->語言中設定。並清除瀏覽器快取後,重新開啟服務管理頁面就為英文了。

問:Linux下發布Oracle資料來源的地圖,地圖上中文亂碼,如何解決?
答:出現亂碼的原因可能是Oracle服務端字元編碼與客戶端字元編碼不一致造成。查詢服務端字元編碼使用語句:SELECT * FROM v$nls_parameters。查詢客戶端編碼使用語句:env | grep NLS_LANG。解決此問題可以將客戶端字元編碼設定成與服務端字元編碼一致,使用語句,例如:export NLS_LANG=”Simplified Chinese_china”.ZHS16GBK,“=”號後面接的是服務端的字元編碼。

問:如何在三維上疊加DIV?
答:首先在承載三維場景的div上疊加一個iframe,因為iframe的優先順序比div高,所以不會被三維場景覆蓋,然後在iframe裡面再新增div。

問:釋出oracle資料庫型工作空間時各引數如何填寫?
答:伺服器名稱為oracle服務名稱,工作空間名稱為在Deskpro.NET中儲存的工作空間名稱,資料庫名稱與使用者名稱一樣,使用者名稱和密碼為用來登入資料庫的使用者名稱和密碼。如在建立oracle型工作空間時新建的使用者名稱為test,密碼為ora,oracle服務名稱為ORCL,儲存的工作空間名稱為workspace。

問:之前使用檔案型試用許可,後來配置硬體許可,怎麼地圖上仍有“SuperMap Unregistered”標記?
答:在配置硬體許可時需要先在配置檔案管理頁面中刪除之前配置的檔案型許可,配置完硬體許可後清除%SuperMap iServer Java_HOME%\webapps\iserver\output\cache目錄下的地圖快取。

問:如何設定檔案型工作空間為相對地址?
答:工作空間的相對路徑是指工作空間相對%SuperMap iServer Java_HOME%\webapps\iserver目錄的路徑。如範例中工作空間Word.sxwu在%SuperMap iServer Java_HOME%\samples\data\World目錄下,則工作空間的相對路徑為../../samples/data/World/World.sxwu。

問:地物編輯成功後,地圖沒更新
答:地物編輯功能時,需要將地圖圖層,如TiledDynamicRESTLayer中enableServerCaching該屬性設為
false,否則影響編輯後的顯示效果

問:如何擴大一幅地圖的範圍?
答:用桌面工具新建一個面數據集,在面數據集中畫一個比地圖略大的矩形框,設定矩形框背景透明以及邊線不可見,然後將地圖新增到矩形框中,重新設定地圖中心點,即可實現地圖擴大範圍。

問:Linux系統上部署SuperMap iServer Java6R,地圖上有些字型怎麼沒有顯示出來?
答:需要設定SUPERMAP_ROOT環境變數,如下:
export UGO_HOME=SuperMap Objects Java 的安裝目錄
export SUPERMAP_ROOT=$UGO_HOME/Support。

問:如遇到使用IE9快速釋出服務,選擇工作空間路徑後,點選下一步報錯。
答:由於部分IE9的版本對Manager頁面支援有問題。解決方法:取消勾選“服務位於本地”,或使用相容模式檢視

問:三維中有專題圖快取嗎?
答:專題圖沒有獨立的快取。一般是把專題圖和場景一起釋出,然後再使用場景快取。

問:SuperMap iServer 6 英文版本,Firefox瀏覽英文版本顯示為中文,如何調整?
答:在FireFox位址列裡輸入”about:config” 回車,然後在過濾器裡輸入general.useragent.locale,雙擊該項然後再彈出的對話方塊裡輸入”en-GB”。如果初次安裝請直接下載英文版本Firefox,地址為:http://releases.mozilla.org/pub/mozilla.org/firefox/releases/。如果想下載響應的語言包可以到上述地址所安裝的版本里找相應作業系統目錄/xpi下找到相應的語言xpi包,拖到Firefox即可安裝。

問:SuperMap iServer 6 英文版本,IE 瀏覽英文版本顯示為中文,如何調整。
答:開啟IE瀏覽器選單欄–工具–選項–常規–語言–新增英文英文語言即可,另外設定完後清除IE快取,重啟IE即可。

問:使用64位的SuperMap iServer6R釋出32位Oracle資料庫的資料來源資料,為什麼服務內容為空?
答:64位的 SuperMap iServer6R開啟 Oracle 資料來源時需要使用64位的Oracle客戶端。

問:將一個應用和iServer war包放到一個tomcat下,出錯。
答:這樣做需要配置ObjectsJava到Path環境變數。

**問:linux下啟動iServer6R報libWrapj600.so
錯誤。**
答:使用遠端工具啟動的話,如putty等 需要輸入X命令,解決辦法:輸入X :n& (n為第幾個螢幕,可以

設定高點,如22,33,44),然後在輸入:export DISPLAY=:n.0 然後 在啟動iServer就行了

問:在瀏覽海圖資料、標籤專題圖、符號專題圖等時,出現部分要素被截斷、顯示不全的現象,應如何解決?
答:請將 SuperMap Objects Java 根目錄\bin\SuperMap.xml 中的 IsMapInflated 屬性改為 true。iServer 自帶的 SuperMap Objects Java 位於 %SuperMap iServer Java_HOME%/support/objectsjava 目錄中。

問:如何讓SuperMap iServer Java 6R服務在開機時自動啟動?
答:需要先安裝1.6 或其以上版本的JDK(與SuperMap iServer Java 6R的位數相同),並在系統環境變數的path里加入SuperMap iServer Java 6R自帶的objectsjava(在安裝目錄的support目錄下)的bin路徑和jre(在安裝目錄的support目錄下)的bin路徑,然後在命令列方式下進入SuperMap iServer Java 6R的bin目錄下,輸入service.bat install命令即可註冊為本地服務(SuperMap iServer Java 6R),然後將啟動型別修改為自動。如果想刪除註冊的本地服務,同樣在命令列中輸入service.bat uninstall(或者service.bat remove)。

問:SuperMap iServer Java 6R在Linux系統中安裝後,不知道如何配置硬體許可
答:SuperMap iServer Java 6R (2012) 正式版,在Linux上不支援硬體許可.可以用檔案型許可。

問:SuperMap iServer Java 6R (64位),配置不了硬體許可
答:SuperMap iServer Java 6R(64位)中不支援,硬體許可。

問:按照幫助文件中的開發指南/使用 iServer API/使用 Java API/使用服務元件中的操作步驟建立服務元件,將提供的範例工程匯入eclipse,並添加了iServer的lib庫中的jar包,執行程式報錯: java.lang.UnsatisfiedLinkError: no Wrapj600 in java.library.path,這是什麼原因?
答:在系統環境變數的path中新增SuperMap iServer Java 6R自帶的objectsjava(在安裝目錄的support目錄中)的bin目錄後重啟eclipse,在專案中新增objectsjava的bin中的jar包,重新執行程式即可。

問:在Windows Server 2003作業系統上安裝SuperMap iServer Java 6R(2012),啟動服務後一閃而過,這該怎麼解決?
答:可以在Windows自帶命令列中進入SuperMap iServer Java 6R安裝目錄下的bin目錄,然後輸入startup,此時出現兩個視窗,其中一個視窗會顯示SuperMap iServer Java 6R使用的環境變數,檢視是否都有值 ,如果沒有則在環境變數中新增該環境變數後重啟服務即可。

問:SuperMap iServer Java 6R(32位)使用64位oracle資料庫,但是資料來源連線失敗,是什麼原因造成的需不需要其他條件?
答:需要使用32位的客戶端,服務端的位數不限制。

問:釋出工作空間後,瀏覽地圖為白圖,是什麼原因?
答:如果資料來源為檔案型資料來源,一般是因為用Deskpro.NET同時打開了資料來源;
如果資料來源為資料庫型資料來源,確定資料庫是否連線上。

問:釋出工作空間時,該工作空間沒有設定密碼但是報工作空間密碼錯誤,這是為何?
答:這是因為該工作空間中含有SDB型資料來源,SuperMap iServer Java 6R不支援SDB型資料來源,將SDB型資料來源轉換為UDB型資料來源即可。

問:當屬性表為寬字元時,查詢返回結果為空.
答:寬字元屬性,其裡面只能填寫中文,中文引號,中文逗號等,佔2個字元的。而填寫英文,英文引號等,則不行。

問:在Linux系統中安裝SuperMap iServer Java 6R ,如果要用自己的JDK或JRE,要注意什麼?
答:所安裝JDK或JRE必須為1.6版本以上,且為32位的,SuperMap iServer Java 6R (2012)正式版,目前暫不支援64位JDK或JRE。

問:SuperMap iServer Java 6R啟動服務的時,報環境檢測沒通過。
答:1. 確定許可是否配置成功及許可是否過期。
2. 修改系統的環境變數path項,刪除path中所包含objectsjava/bin的配置。
3. 檢視,在path中所配置的JDK版本,目前只支援JDK或JRE1.6及以上的。

問:瀏覽地圖時,出現範圍不正確或者亂圖,並且已確認清過快取。
答:用SuperMap Deskpro.NET開啟其所在的工作空間,把所用資料重建空間索引及重新計算範圍即可。如果地圖屬性中有設定固定比例尺,則取消固定比例尺的設定。

**問:釋出交通網路分析服務時,服務端報“載入交通網路分析設定失敗”錯誤,具體錯誤資訊如下:
ERROR com.supermap.services.providers.UGCTransportationAnalystProvider.init(UGCTransportationAnalystProvider.java:1223) - 載入交通網路分析設定失敗。
WARN com.supermap.server.impl.ServiceBeanBuilder.buildComponent(ServiceBeanBuilder.java:138) - 業務元件transcomp-test建立失敗
java.lang.IllegalStateException: 沒有初始化。**
答:在SuperMap Deskpro.NET中檢查網路資料集對應的屬性表,檢視SFNODE欄位對應的欄位值,是否存在-1的值,如果存在刪除相應的記錄即可。

問:釋出oracle型工作空間,總是報工作空間連線字串錯誤?
答:檢查填寫的引數是否正確,伺服器名稱為其TNS服務名稱,工作空間名稱為工作空間在資料庫中的名稱,資料庫名稱為空間資料庫名稱,使用者名稱為用來登入資料庫的使用者名稱,密碼為用來登入資料庫的密碼,資料庫名稱和使用者名稱必須相同,注意大小寫。

問:啟動SuperMap iServer Java 6R後,瀏覽範例,出現白圖,在地圖列表中點選地圖名稱後點擊image後提示工作空間中沒有任何資料,這是什麼原因?
答:原因是使用的作業系統在C:\Windows\System32中存在sqlite3.dll檔案,與objectjava\bin\中的sqlite3.dll衝突,導致讀取不到資料來源,解決方法是修改該檔名使之不可用,例如改為:sqlite3.dll_bak,然後重啟服務即可。

問:如何修改SuerpMap iServer Java 6R的快取目錄?
答:在SuerpMap iServer Java 6R配置檔案server.xml(%SuperMap iServer Java_HOME%\webapps\iserver\WEB-INF\config\server.xml)中
修改節點的值(出圖目錄)為所需目錄的路徑,修改節點的值(訪問目錄)為將出圖目錄通過web伺服器(如:tomcat或apache)釋出出來後的訪問路徑即可。

問:如何捕捉地圖放大縮小事件?
答:在map物件中新增zoomStart或者zoomEnd事件監聽。

問:在Linux(SUSE除外)上如何設定開機自動啟動SuperMap iServer Java 6R(2012)服務?
答:(1)在/etc/rc.d/rc.local檔案中新增:sh startup.sh檔案路徑(在安裝目錄bin資料夾下);(2)把support/objectsjava/bin路徑下的libmawt.so,放到support/jre/lib/i386/headless下面,原來support/jre/lib/i386/headless路徑下的同名檔案改成隨便另外的名字。(64位SuperMap iServer Java 6R需要把libmawt.so檔案放到support/jre/lib/amd64/headless下面)

問:圖層中設定了風格符號,但是在三維場景中不能開啟該圖層。
答:帶有任何風格符號的圖層都不能向場景中新增。解決方法是將這些帶有符號的圖層單獨做一個場景,然後再用sence.open方法開啟

問:模型與場景間有空隙,如何消除?
答:在模型匯出的時候將高度設為0即可。

問:為啥配置好了等值線,基準值和等值距,但是在進行空間分析的時候還是報錯?
答:如果等值線,基準值和等值距配置正確,估計是解析度的錯誤,重新修改一下解析度就好了。

問:linux配置許可,當前環境變數使用自己的JDK,彈出框亂碼
答:是因為系統自帶JDK沒有中文字型庫的原因,可以刪除系統JDK配置,讓配置許可工具使用iServer6R中support中自帶的JRE即可(iServer自帶的JRE

已有中文字型庫)

問:在linux中,oracle資料來源連線失敗
答:可以source下JDK和ObjectsJava的環境變數,然後進入到ObjectsJava的Bin目錄下輸入ldd libEngineOracle600.sdx

問:在三維中執行SQL查詢(GetFeature3DsBySQLService)的時候報:物件 不支援此屬性或者方法。
答:1:檢查querySewrviceUrl地址是否正確。
2:確保查詢條件中的資料來源和資料集是下面的形式:getFeaturesBySQLParameters.datasetNames = [dataSourceName + “:” + dataSetName],即“資料來源:資料集”。