反饋已提交

網絡繁忙

常见问题及解决方案

1. 概論

我們在平時的報表運作程式中會遇見各種各樣的問題,下面列舉了一些常見的報錯資訊、原因和基本解決方法。

常見的錯誤代碼報錯及解決方案請參考:錯誤代碼彙總及解決方案

注:JAR 為 2018.4.9 及之後,不再支援 applet 列印,請使用其他列印方法。

2. 資料連結問題

2.1 找不到資料連結

問題描述:預覽範本時報錯:找不到資料連結

原因分析:資料連結或者資料集配置問題

解決方案:查看配置是否有問題,詳情參考:通用資料連結常見問題

2.2 OPTION SQL_SELECT_LIMIT=DEFAULT

問題描述:具體報錯資訊:You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1 

原因分析:JDBC 在連結資料庫時候會傳送測試語句 SET OPTION SQL_SELECT_LIMIT=DEFAULT 
這在 MySQL5.6 以下版本是可以的 ,但是 5.6 不再支援 SET.

解決方案:升級驅動到對應資料庫版本即可

2.3 Cannot load JDBC driver class

原因分析:驅動問題

解決方案:查看資料庫驅動是否正常. 如果確定驅動是有的, 再看 JDK 與驅動是否匹配

2.4 Cannot get a connection

問題描述:具體報錯資訊:Cannot get a connection,pool error Timeout waiting for idle object

原因分析:資料庫連不上, 連結池滿了或者逾時之類的. 

解決方案:點選「伺服器>定義資料連結」,如下圖所示,點選連結池屬性,彈出連結池屬性編輯框,調整最大活動連結數

2.5 TDS protocol stream is not valid

問題描述:具體報錯資訊:connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error:The TDS protocol stream is not valid

原因分析:jtds 連結 SQL Server時,SQL Server 啟用了安全認證

解決方案:把用戶端加到認證列表裏

2.6 paged queries not supported

原因分析:當前資料庫不支援分頁查詢行式引擎

解決方案:換個資料庫比如 MySQL, SQLServer, Oracle 等等。

3. 列高欄寬及分頁問題

3.1 index xx,size xx

原因分析:一行的高度大於一頁的高度。

解決方案:可以縱向合併儲存格,使一格佔多列,這樣就可以把列高大於頁高的儲存格拆分為多行進行計算了,預覽就會以多頁的方式顯示出來。欄寬同理,一個儲存格的長度不能大於一頁的寬度。否則將會出現錯誤,可以橫向合併儲存格。

3.2 repeated column width is larger...

原因分析:重複欄寬度大於紙寬度。

解決方案:設定小於欄寬就行了。

3.3 由一個儲存格擴展出來的列高不一致

原因分析:某一行內容比較多一列顯示不了,就換列了,所以變寬了。

解決方案:將儲存格拉寬點就好了。

3.4 空白儲存格導致使其有多餘的空白頁

問題描述:在 H2 儲存格填上資料並設定格式後,刪除該儲存格內容後預覽,可看到本來兩頁的內容變成四頁內容,且後兩頁都是空白頁。


原因分析:因為當時刪除儲存格時,只刪除了該儲存格的內容,而沒有刪除該儲存格的格式。若範本中存在多餘的格式沒有刪除,那麼對應的列或欄中的顏色是顯示為灰色的。如上圖中,D、E 列為深灰色,說明這兩列有多餘的格式沒有刪除。

解決方案:當出現如上問題時,您只要選中 D、E 列所在的儲存格後,右鍵選擇「清除>全部」即可。清除全部後,可看到 D、E 的顏色會變為白色,如下圖:


或直接選中 D、E 列,刪除這兩欄也可以,如下圖:

注:若出現多餘行後,只要選中深灰色行所在的儲存格,點選清除全部或直接刪除行即可。


3.5 範本中有多餘的空白sheet

問題描述:已經確定沒有多餘列欄了,但預覽時仍然出現空白頁。

原因分析:可能存在多餘的空白sheet,如下圖所示:


解決方案:如上圖紅框位置,實際使用時可能建立了sheet 沒有使用,或刪除了 sheet 裏的內容,忘記了刪除 sheet,那麼多餘的 sheet 會在預覽時,單獨作為一個空白 sheet 顯示出來,這時只需右擊多餘的 sheet 刪除它即可,如下圖:


3.6 列高欄寬超出頁面大小設定

問題描述:在預覽範本出現:錯誤代碼:11300002 列高欄寬超出頁面大小設定,如下圖所示:

原因分析:

1)某個儲存格內容很長,且設定了自動調整列高。

2)某個儲存格內容很長,且設定了自動調整欄寬。

3)重複標題列與欄設定有問題也可能會出現上述問題。

解決方案:請參考 列高欄寬超出頁面大小設定

4. JAR包版本問題

4.1 本地預覽的效果和伺服器上的效果不一樣

原因分析:JAR 包存在差異或者快取問題

解決方案:更新 JAR 包,確定開發環境和伺服器平台一致正確,仍不行可重啓設計器或者清空瀏覽器快取。詳細可參考:JAR包不匹配常見問題本地預覽效果與伺服器端預覽效果不一致

4.2 WcardTitleLayout cannot be cast

問題描述:具體報錯資訊:WcardTitleLayout cannot be cast to com.fr.form.ui.ElementCaseEditorProvider

原因分析:更新了 JAR, 沒更新自適應插件。

解決方案:詳細可參考:JAR包不匹配常見問題

4.3 java.lang.AbstractMethodError

原因分析:一般都是因為引擎的 JAR, 插件的 JAR, 以及設計器的 JAR, 這三者之間不同步, 不是同一個時間編譯出來的.

解決方案:更新所有 JAR。詳細可參考:JAR包不匹配常見問題

4.4 java.lang.NoSuchMethodError

原因分析:一般都是 JAR 包不匹配

解決方案:設計器 lib, webapps 裏的 lib 以及插件三者要保持一致。

4.5 java.lang.RuntimeException- Server workspace no response

原因分析:一般都是 JAR 包不匹配

解決方案:詳細可參考:JAR包不匹配常見問題

4.6 com.fr.stable.fun.Level

問題描述:具體報錯資訊:com.fr.plugin.record.FunctionRecordManager cannot be cast to com.fr.stable.fun.Level

解決方案:刪除 plugins 目錄下的老的功能點記錄插件. 停止維護了。

4.7 design_open error

原因分析:遠端設計, 範本開啟報錯, 開啟一些簡單的範本試試, 如果簡單的可以, 只有部分不行, 考慮是不是兩邊jar不一致, 插件不一致。詳細可參考:JAR包不匹配常見問題

5. 範本預覽顯示錯位問題

範本預覽顯示錯位問題較為複雜,可參考:範本預覽錯位排查方案 進行排查分析。

6. 記憶體及併發問題

6.1 address pool is full 

問題描述:設計器預覽範本時出現報錯:address pool is full 

原因分析:位址池滿,連結數超過併發數上限

解決方案:在「管理系統>智慧維運>系統情況」下面,看到當前系統線上使用者數,然後再比較註冊資訊頁面裏的 Concurrency,

判斷是否超過購買的併發數,進而選擇減少併發人數或者增大最大併發數。詳細可查詢:address pool is full 錯誤處理

6.2 java heap space、stack overflow

問題描述:預覽範本時報錯:java heap space、stack overflow

原因分析:範本太複雜,資料量大, 堆堆疊上限溢位

解決方案:優化資料集,報表採用分頁預覽方式;調大伺服器記憶體。處理方法可參考:修改記憶體

6.3 java.lang.OutOfMemoryError

原因分析:記憶體上限溢位了

解決方案:重啓後觀察,清理伺服器記憶體。

6.4 Canot run program xx

問題描述:具體報錯資訊:Canot run program xx, error=12, Cannot allocate memory

解決方案:修改下 JVM 的記憶體配置, 初始記憶體調小點,詳細方法可參考:FR 效能測試注意事項

6.5 Web 端存取範本, 出現 "頁面佇列中"

原因分析:應該是記憶體快滿了, 防當機插件啟動 Session 佇列功能了

解決方案:清理伺服器記憶體。

7. 插件問題

7.1 Cannot connect to site server: xxx

原因分析:連不上應用商店, 不影響使用。

7.2 Class not found: JForm

原因分析:開啟報表的時候出錯了, 可能是因為用了某個插件而當前設計器沒裝該插件等等. 具體要看更詳細的日誌。

7.3 插件列表讀取失敗

原因分析:一般是因為網路原因導致連結不到商城

解決方案:直接瀏覽器裏存取商城看看能不能存取到: https://market.fanruan.com/

8. 儲存格、參數、元件設定問題

8.1 下拉複選框傳回值問題

原因分析:下拉複選框元件傳回值預設情況下是陣列,參數取到的字串是不帶引號的(所以在資料集定義的 SQL 語句中呼叫字串型別的參數的話要手動加上單引號才行)。多個值用 in,SQL 的 in 語句參數是字串陣列,每個都要求帶單引號。

解決方案:轉化下,把元件的傳回值改成字串,間隔符用','。

8.2 自訂資料字典顯示等號問題

原因分析:自訂資料字典,跟儲存格還有自訂提示框一樣,如果不是‘=’號開頭是當做字串處理,‘=’號開頭當做公式處理

解決方案:單寫一個等號就是空白的,想要顯示等號的話用="="

8.3 no function found: XXX

原因分析:沒找到自訂函式, 一般都是設計器本地的cpt拷到伺服器上, 自訂函式沒拷過去.

8.4 UNEXPECTED WIDGET 

問題描述:設計器開啟範本, 找不到元件

原因分析:一般是用了自訂元件, 或者某個插件裏的元件, 當前運作環境裏找不到。

解決方案:重新設定自訂元件或安裝對應的插件。

8.5 程式資料集介面上設定了參數無法儲存

原因分析:程式資料集 class 裏自己定義了參數,  會跟介面衝突, 出於相容原因, 優先選擇使用 class 裏設定的.

解決方案:刪掉程式資料集 class 裏的參數, 直接用介面上的. 代碼中不去 setParameter, 直接 getParameter 即可.

8.6 Cannot create JDBC driver of class '' for connect URL ''

問題描述:在預覽範本的時候,後臺日誌拋錯如下圖:


原因分析:在範本中為儲存格設定了 資料字典,但是卻沒有綁定資料表和欄位。

解決方案:重新設定資料字典後儲存預覽即可。

8.7 Invalid argument 

問題描述:具體報錯資訊:Invalid argument to native writeImage

原因分析:一般是因為 JDK 不支援部分圖片的解碼

解決方案:將範本裏圖片重新用 qq 截圖之類的生成 png 之類試試

8.8 com.fr.base.TableData$1 

問題描述:具體報錯資訊:com.fr.base.TableData$1 cannot be cast to com.fr.data.impl.NameTableData


解決方案:看堆堆疊, 上圖堆堆疊就是某個儲存格用了公式形態, 但是公式沒獲取到對應的資料集. 具體哪個儲存格, 可以透過二分法確定.

8.9 儲存格計算死循環

問題描述:在預覽一個範本時,出現如下圖所示錯誤代碼:11300003 儲存格計算死循環


原因分析:在預覽報錯提示頁面有關於具體情況的說明,分別如下:

1)如果出錯物件只有一個儲存格,比如 A1,則說明 A1 所引用的儲存格出現了死循環。

2)如果出錯物件是兩個儲存格,比如 [B1, A1],則說明 A1 和 B1 的左父格或者上父格設定出現了死循環。

3)如果出錯物件是一個儲存格,但用中括號標記出來了,比如 [A1] ,則說明 A1 的左父格或者上父格引用了自身。

解決方案:請參考 儲存格計算無限迴圈

8.10 修改了參數,預覽時範本沒有變化

問題描述:修改了報表範本中的參數名稱,預覽範本,輸入參數值後發現沒有效果。

原因分析:可能是修改了參數名後,對應的元件名沒有改變,因此在參數介面中輸入值後沒有傳給相應的參數。

解決方案:將參數元件名設定與參數名相同。

8.11 凍結標題時首行上邊框粗

問題描述:當報表設定了重複凍結時報表預覽效果如下,首行資料行與標題行之間的邊框線很粗:

解決方案:請參考 凍結標題時首列上邊框粗解決方案

8.12 儲存格新增樹節點,字體樣式設定失效

問題描述:設計器中字體設定的是白色, 新增了樹節點按鈕後預覽, 字體就變成了黑色,如下圖所示:

解決方案:

1)在範本Web屬性中新增載入結束時間,輸入JS代碼:$(".x-text").css("color","red")

2)並選擇對應的元件,新增點選事件,輸入JS 代碼:$(".x-text").css("color","red")

3)保持報表預覽即可。

注:需要根據實際情況修改JS代碼。

9. 伺服器或檔案問題

9.1 java.lang.NoClassDefFoundError 

9.1.1 具體報錯:sun.awt.X11GraphicsEnvironment  Could not initialize class sun.awt.X11.XToolkit

原因:  一般發生在 Linux 下, 處理圖片時需要本地的 jvm x-server 的支援.

解決方案:啟動 Java 時加上參數:-Djava.awt.headless=true 例如:我們在啟動 Tomcat 時在啟動命令行裏面加上這個參數就可以了.

對於 WebLogic 可以設定在/export/home/xxx(帳號)/weblogic/wlserver_10.3/common/bin/commEvn.sh

Sun)
    JAVA_VM=-client
    MEM_ARGS="-Xms1024m -Xmx1024m -XX:MaxPermSize=1024m"
    JAVA_OPTIONS="${JAVA_OPTIONS} -Xverify:none"
  ;;
  *)
    JAVA_VM=
    MEM_ARGS="-Xms1024m -Xmx1024m"
  ;;
  esac
fi
export JAVA_VM MEM_ARGS JAVA_OPTIONS

之後新增下面兩句:

JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true "
export JAVA_OPTIONS

對於 WebSphere 則進入「應用程式伺服器 > server1 > 進程定義 > Java 虛擬機」。

一般 JVM 自變數 :-Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Djava.awt.headless=true

9.1.2 具體報錯:com/fr/general/logRecordTime

解決方案:JAR 包一致的前提下, 刪掉所有的插件, 先確定 Tomcat 下獨立部署有沒有問題, 如果沒問題, 再看看是不是要改 WebLogic的 JRE.

9.1.3 具體報錯:com/fr/web/core/service/WidgetService

原因分析:放錯了 Applet 包導致的, 比如把 Applet 放到裏 lib 目錄等等.

解決方案:將 Applet 放到%FR_HOME%\webapps\webroot目錄下

9.1.4 具體報錯:sun/io/UnknownCharacterException

原因分析:可能是驅動異常導致的。

解決方案:檢查更換驅動。

9.2 java.net.SocketException

9.2.1 具體報錯資訊:Connection reset by peer 或者 Broken pipe

資源檔案讀取失敗, 原因有很多, 需要更細緻的排查

可能原因:

1)伺服器的併發連結數超過了其承載量,伺服器會將其中一些連結 Down 掉;

2)客戶關掉了瀏覽器,而伺服器還在給用戶端傳送資料;

 3)瀏覽器端按了 Stop

解決方案:

1)減少併發,如果知道實際連結伺服器的併發客戶數沒有超過伺服器的承載量,則有可能是中了病毒或者木馬,引起網路流量異常。

 2)針對第二種和第三種情況一般不會影響伺服器。

但是如果對異常資訊沒有特別處理,有可能在伺服器的日誌檔案中,重複出現該異常,造成伺服器日誌檔案過大,影響伺服器的運作。

可以對引起異常的部分,使用 try...catch 擷取該異常,然後不匯出或者只匯出一句提示資訊,避免使用 e.printStackTrace(); 匯出全部異常資訊。

9.2.2 具體報錯資訊:ClientAbortException:java.net.SocketException

原因分析:處理 http 連結時,正在匯出內容時,使用者關閉了 IE,會出現一個"ClientAbortException",屬於 I/O 處理中出現的一個異常

注:不一定是使用者主動觸發的, 網路不穩定時也有可能出現.

9.3 java.lang.SecurityException

問題描述:具體報錯資訊:class "xx"'s signer information does not match signer information of other classes

原因分析:class 被重複載入了, 最常見的就是 webapps/webroot/WEB-INF/lib 裏多放了一個 Applet 包.

解決方案:刪除即可

9.4 ParseError at [row,col]:[x,xx]

問題描述:具體報錯資訊:com.fr.third.javax.xml.stream.XMLStreamException : ParseError at [row,col]:[x,xx]

原因分析:xml 檔案內容有損壞, 具體哪一行那一欄, 看[row, col]提示.

解決方案:看報錯裏是哪個 manager 導致的, 一般

DatasourceManager -> datasource.xml

FunctionManager -> functions.xml

ConfigManager -> config.xml

CustomConfigManager -> customconfig.xml

WidgetManager -> widgets.xml

9.5 Can't create cache file

原因分析:Tomcat 下沒有 temp 目錄, 或者是 temp 目錄寫入權限不夠

解決方案:在 Tomcat 的安裝目錄下建立這個目錄就好了

9.6 Get PublicKey method failed

原因分析:具體報錯資訊:Get PublicKey method failed,status is : -1

解決方案:連不上數字簽章伺服器了, 檢查網路是否可以ping通以及數字簽章所在伺服器是否正常, 看不出來問題就重啓下.

9.7 Could not initialize class

問題描述:具體報錯資訊:Could not initialize class Sense4.Sense64

原因分析:fs 裏開啓了加密狗註冊, 但是沒有安裝對應的驅動.

9.8 com.fr.test.xxx not found

問題描述:具體報錯資訊:啟動 Tomcat 有一些 function: com.fr.test.xxx not found!

原因分析:為了提升自訂函式計算速度, 將自訂函式放在啟動的時候去載入;如果自訂函式找不到就會有這個報錯, 一般不影響, 因為有一些是我們內建 demo.

9.9 java.io.FileNotFoundException

問題描述:具體報錯資訊:java.io.FileNotFoundException: xxx.cpt or xml (拒絕存取)

原因分析:檔案不存在, 或者web瀏覽器沒有資料夾的存取權限。

9.10 Web 端存取 cpt, 提示找不到範本

原因分析及解決方案:是不是所有的 cpt 都找不到, 還是說只有部分新增的找不到? 如果是新增的找不到, 是不是叢集沒有同步到其他節點.

所有的 cpt 都找不到, 去「fs > 智慧維運->系統情況 > 系統狀態 > 配置檔案檢查」 查看 xml 檔案都放在哪的。從該路徑尋找 reportlets 目錄.

9.11 war 包部署, 修改 xml 再次部署後未生效

原因分析:WebLogic 下, war 包部署是不解壓的, 所以我們會把所有的 xml copy到臨時目錄進行增刪改.

解決方案:可以透過存取 op=fr_base

9.12 java.net.BindException

問題描述:具體報錯資訊:java.net.BindException:Address already in use: JVM_Bind

原因分析:一般都是上一次 Tomcat 沒有徹底關掉就再次啟動導致埠被佔用了.

9.13 當前hsql已被另一執行緒鎖定

原因分析:兩個 Web 伺服器共用了同一個 WebReport. 最常見的, 啟動了 Tomcat, 設計器也用本地目錄切了過去.

或者 Tomcat 裏用了 docBase 映射, 映射的位址是tomca/webapps中的 WebReport, 這樣會被載入兩次.

解決方案:刪掉 db.lck,重啓 Tomcat 服務,修改配置可以解決

9.14 Web 端 654 和 655錯誤

原因分析:載入了有問題的 class 檔案做出的程式資料集

解決方案:程式資料集 class 必須放在%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\data下,編譯好了後的 class 名也不能修改。

9.15 Can't create cache file錯誤

原因分析:Tomcat 下沒有 temp 目錄, 或者是 temp 目錄寫入權限不夠

解決方案:Linux 下建立 temp 目錄,賦權限 777;Windows 下可以把工程從 C 盤移到 D 盤

9.16 預覽 Multiple exceptions, web 端卡住

原因分析:一般是因為設計器預設8075埠被佔用了

解決方案:點選「檔案>選項>進階」,換一個設計器埠, 重啓.

10. 其他問題

10.1 final block not properly padded

原因分析:DES 加密的類初始化有問題, 不過只在 OpenJDK 裏遇到過.

解決方案:換成正常 Linux 下的 JDK 就好了.

10.2 javax.mail.SendFailedException

問題描述:Invalid Addresses  javax.mail.AuthenticationFailedException

原因分析:郵件收件人, 郵箱帳號密碼錯誤或者郵箱伺服器有問題,被郵箱伺服器拒絕了連結, 可能判定為傳送垃圾郵件等行為

解決方案:重新輸入收件人及密碼等或者換個郵箱

10.3 報表背景在不同電腦上顯示顏色不一樣

問題描述:

伺服器本身正常顯示狀態:

部分客戶機非正常顯示狀態:

原因分析:電腦在顯示上有比較大的失真,報表背景色 RGB(248, 247, 230),三種顏色都參與了顏色的生成,且數值都不大,因此在某些顯示效果比較差的電腦上,就會導致比較大的失真,甚至會出現一個顯示淡藍色,一個顯示粉紅色的情況,檢查發現報表傳遞的顏色參數是正常的,所以只是單純的顯示問題。

解決方案:在使用 RGB 參數來調整背景色時,最好設定其中一到兩個參數為 255,例如,R 參數為 255,G 參數為 255,B 參數為 212,RGB(255,255,212) 這樣失真的可能性會小一些,顏色誤差不是很大,基本相同。

附件列表


主題: 報表應用
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙