1. 程式人生 > >授權問題與解決辦法彙總

授權問題與解決辦法彙總

我們在部署報表的時候常常會遇到某些授權問題,現在我們將授權問題彙總一下,並給出對應的解決辦法。(不斷更新中)

伺服器特徵碼為負

伺服器特徵碼為負值可能出現在兩個階段:

1、  使用獲取特徵碼程式獲取的特徵碼為負值;

2、  訪問應用的時候後臺報負值錯誤,伺服器特徵碼-99999476與License檔案中授權的特徵碼38047366不一致!

這兩種問題一般都是由於客戶使用oracleAS應用伺服器,此原因可能是由於獲取特徵碼的程式找不到windows的環境變數windir了。

可以通過如下操作解決:

在報表配置中增加一項 windir 3.5中加在web.xml中的DataServlet的初始引數中,

           <init-param>

             <param-name>windir</param-name>

                   <param-value>c:\windows</param-value>

           </init-param>

4.0中加在reportConfig.xml中,如下
          <config>
                    <name>windir</name>
                   <value>c:\windows</value>
         </config>

有時配置完上面的選項還是不正常,這時就要試著更新一下report3.5.jar或report4.jar包了。

特徵碼為正值,但報不匹配錯誤

諸如這樣的錯誤:伺服器特徵碼68824866和68828198都與LICENSE檔案中授權的特徵碼43923866不一致!

這類問題出現可能由於如下原因導致:

1、  使用直接獲取特徵碼程式獲取的有問題,這時候需要用我們提供的jsp獲取特徵碼的程式再獲取幾次,看看是否都一致,如果都沒問題需要將該特徵碼發給銷售重做授權;

2、  伺服器環境做過硬體或軟體的改變,導致當前特徵碼與原來獲取的特徵碼不符。這時需要重新獲取當前伺服器特徵碼,並將特徵碼發給銷售重做授權;

3、  功能包導致,此時需要更新report4.jar試一下。

報表授權不支援該功能

開發報表的過程中參照教程操作,但最後發現報錯或不出現相應的結果。這時除了確認本身製作過程是否有問題外,就要檢視一下授權資訊了,看看當前授權支不支援該功能。

檢視授權資訊的具體方法是(4.0以上版本):

點選設計器 選單欄>>關於>>授權資訊>>選擇另一個授權,選擇後即可進入授權資訊檢視視窗。這裡如果對應的功能為false,那就是該功能不被支援了

關於繫結IP時的授權錯誤:

問題描述

         某客戶的叢集環境中使用了繫結ip的授權,其中一臺59的機器出現問題,提示:伺服器IP地址127.0.0.1與License檔案中授權的IP地址不符!

叢集環境中除59機器,其他正常,客戶伺服器均為unix系統。

授權資訊:IP= 10.48.**.61;10.48.**.59;10.48.**.53;10.48.**.4

問題分析

         導致這個問題的原因可能有兩方面:

一是授權本身製作有問題,比如ip繫結錯誤或ip輸入不規範。通過檢視和客戶確認和檢視授權資訊基本上排除了這兩種可能;

二是客戶這臺59的機器和其他的不同,主要可能硬體如網絡卡不盡相同。這需要通過程式獲取一下本機ip來做測試。

解決方法

       我們使用潤乾匹配授權時獲取ip的方法,在59本機獲取一下當前ip。java.net.InetAddress.getLocalHost().getHostAddress(),經反饋得知,結果為127.0.0.1,所以我們確認問題出在客戶機上。

         讓客戶進行了如下操作:

檢視 /etc/hosts檔案,裡面有一條本機名和 222.xxx.xxx.xx這個 IP 對應的記錄。把它註釋掉,然後修改本機的主機名,又在 hosts檔案中加入主機名和222. xx.xx.xx的對應,問題解決了。

總結

         通過問題的解決方法,我們可以發現InetAddress.getLocalHost().getHostAddress()方法找到本機 IP的實現方法——依靠本機的機器名去查詢IP 地址,和 ping `hostname` 返回的 IP地址是同一個,並不是 ipconfig 方法得到的 eth0 IP 地址。

在windows中InetAddress.getLocalHost().getHostAddress()獲得的值可能是在/system32/drivers/etc/host檔案中的值