報表管理軟體FineReport中weblogic類衝突報錯

通過weblogic部署我方報表應用,在使用過程中可能會出現一些相關於類衝突的報錯信息,這一類問題該如何解決呢?下面就通過報表管理軟體FineReport來解決。

工具/原料

報表管理軟體FineReport7.1.1
大小:148.2M 適用平台:windows/linux

方法/步驟

報錯信息

報錯1

java.lang.NoClassDefFoundError: com/sun/xml/stream/XMLReaderImpl

報錯類:%weblogic_home%/bea/modules目錄下的glassfish.jaxws.sjsxp_2.0.1.jar。

報錯2

Weblogic8.1部署WebReport工程時的報錯:

Error 500--Internal Server Error

java.lang.NoSuchMethodError: javax.xml.namespace.QName.getPrefix()Ljava/lang/String;

at com.sun.xml.stream.events.XMLEventAllocatorImpl.fillAttributes(XMLEventAllocatorImpl.java:186)

at com.sun.xml.stream.events.XMLEventAllocatorImpl.getXMLEvent(XMLEventAllocatorImpl.java:78)

at com.sun.xml.stream.events.XMLEventAllocatorImpl.allocate(XMLEventAllocatorImpl.java:54)

at com.sun.xml.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:87)

at com.fr.base.xml.XMLableReader.readXMLObject(XMLableReader.java:237)

at com.fr.report.io.core.IOHelper.generateTemplate(IOHelper.java:276)

at com.fr.report.io.TemplateImporter.generate(TemplateImporter.java:16)

at com.fr.web.core.SessionIDInfor$EmbeddedTpl.gen(SessionIDInfor.java:1568)

at com.fr.web.core.SessionDealWith.generateSessionID(SessionDealWith.java:214)

at com.fr.web.core.ReportletDealWith.dealWithReportlet(ReportletDealWith.java:35)

at com.fr.web.core.ReportDispatcher.checkAppServerConfig(ReportDispatcher.java:1183)

at com.fr.web.core.ReportDispatcher.dealWithRequest(ReportDispatcher.java:285)

at com.fr.web.ReportServlet.doGet(ReportServlet.java:169)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)

at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)

at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)

at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)

at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

報錯類:jaxrpc.jar。

報錯3

weblogic9部署WebReport工程時的報錯:

[Fatal Error] :-1:-1: Premature end of file.

Aug 16, 2011 2:49:55 PM com.fr.base.FRContext getScheduleManager

WARNING: XML??????

com.fr.web.ReportletException: XML??????

at com.fr.base.core.BaseCoreUtils.parseXML(Unknown Source)

at com.fr.base.core.BaseCoreUtils.parseXML(Unknown Source)

at com.fr.base.XMLFileManager.readInputStreamXML(Unknown Source)

at com.fr.base.FRContext.getScheduleManager(Unknown Source)

at com.fr.web.ReportServlet.init(Unknown Source)

at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(St

ubSecurityHelper.java:278)

報錯4

weblogic10.0.3或weblogic10.3.1部署WebReport工程時的報錯:

java.lang.ClassCastException: com.sun.xml.stream.ZephyrParserFactory cannot be cast to javax.xml.stream.XMLInputFactory

報錯類:fr-third-xx.jar

報錯原因

這一類報錯是由於類重用導致即類衝突,因為FineReport使用了一些第三方的插件跟weblogic裡面的插件相同,但是插件版本不同(不同版本間方法的個數與實現可能不同),相同的插件只會加載一個版本,而weblogic會優先加載weblogic自身的類,如果加載了weblogic中使用的版本,當報表端使用到該第三方插件時就可能會因為找不到某些類而報如上的錯誤。

解決方案

解決的主要思想就是修改加載順序,使之優先加載FineReport中的類,即使正確的jar包先於weblogic.jar加載,在%/WebReport%/WEB-INF文件夾下新建weblogic.xml配置文件,讓伺服器優先調用報表工程下的jar包,內容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">

<weblogic-web-app>

<container-descriptor>

<prefer-web-inf-classes>true</prefer-web-inf-classes>

</container-descriptor>

</weblogic-web-app>

原作者:FineReport

相關文章

  1. 合併報表軟體FineReport中weblogic類衝突報錯

    通過weblogic部署我方報表應用,在使用過程中可能會出現一些相關於類衝突的報錯信息,這一類問題該如何解決呢?下面就通過合併報表軟體FineReport來解決. 工具/原料 合併報表軟體FineRe ...
  2. 報表統計系統FineReport中weblogic類衝突報錯

    通過weblogic部署我方報表應用,在使用過程中可能會出現一些相關於類衝突的報錯信息,這一類問題該如何解決呢?下面就通過報表統計系統FineReport來解決. 工具/原料 報表統計系統FineRe ...
  3. excel報表系統FineReport中weblogic類衝突報錯

    通過weblogic部署我方報表應用,在使用過程中可能會出現一些相關於類衝突的報錯信息,這一類問題該如何解決呢?下面就通過excel報表系統FineReport來解決. 工具/原料 excel報表系統 ...
  4. 報表設計軟體FineReport中訪問op=fs報錯問題

    在對數據決策系統(op=fs)進行訪問時,會提示CREATE EMB-DB:SET LOGSIZE FAILED!的錯誤,具體報錯如下圖: 下面就通過報表設計軟體FineReport來解決一下這個問題 ...
  5. 報表管理軟體FineReport中如何設置自定義提交

    用戶在做填報報表時,希望點擊提交按鈕並不是往資料庫中填報數據,而是要獲取到填報頁面的數據進行進一步處理,這個該如何解決呢?下面就通過報表管理軟體FineReport來進行介紹. 工具/原料 報表管理軟 ...
  6. 報表管理軟體FineReport中如何實現分級權限分配

    多部門共用系統.各個部門有其自己的管理員,並給其部門員工分配權限,即實現多級管理員層層分配,分級管理員只能管理自己職責範圍內的模板權限分配,報表管理軟體FineReport自主開發的數據決策系統中提供 ...
  7. 報表管理軟體FineReport中Excel導出的多種方式

    不管是設計器中導出Excel,還是在BS端導出Excel,都可以選擇原樣導出.分頁導出和分頁分Sheet三種導出效果.這三種導出方式有什麼區別呢?下面就通過報表管理軟體FineReport來簡單介紹一 ...
  8. 報表管理軟體FineReport中如何對日期求平均數

    對於日期型數據求平均數,由於average()函數不支持對日期型數據求平均數因此求出的值是0,但若希望對日期求平均數要如何實現呢?下面就通過報表管理軟體FineReport來簡單介紹一下. 工具/原料 ...
  9. 報表管理軟體FineReport中如何設置系統管理

    下面就通過報表管理軟體FineReport來簡單介紹一下. 工具/原料 報表管理軟體FineReport7.1.1 大小:148.2M 適用平台:windows/linux 方法/步驟 點擊管理系統& ...
  10. 報表管理軟體FineReport中多級上報前期如何準備

    多級上報前期準備需要將多級上報的三個標籤添加到系統的目錄樹下面,並將給這些標籤節點分配權限,下面就通過報表管理軟體FineReport來進行介紹. 工具/原料 報表管理軟體FineReport7.1. ...
  11. 報表管理軟體FineReport中模板權限的控制示例

    集成報表後,希望不同的用戶登錄,所能看到的報表是不同的,沒有權限的用戶查看報表時提示沒有權限,下面就通過報表管理軟體FineReport來進行介紹. 工具/原料 報表管理軟體FineReport7.1 ...
  12. 報表管理軟體FineReport中如何進行跨sheet取數

    報表之間可以通過參數或超連結等傳遞數據,同一個模板中多個sheet間是無法用參數和超級連結進行傳值的,那如何實現在一個sheet中取另外一個sheet某個單元格的值即如何實現跨sheet取數呢?下面就 ...
  13. 報表管理軟體FineReport中自定義列印按鈕介紹

    下面通過報表管理軟體FineReport來簡單介紹一下. 工具/原料 報表管理軟體FineReport7.1.1 大小:148.2M 適用平台:windows/linux 方法/步驟 用戶系統已經自己 ...
  14. 報表管理軟體FineReport中Linux導出或列印亂碼

    在Linux環境下,會發現客戶端預覽是正常的,但是在導出或列印時會出現亂碼,或者一些特殊符號如人民幣符號"¥",在導出或列印時發現變成了美元符號"$",為什麼會 ...
  15. 報表管理軟體FineReport中如何進行擴展後排序

    若模板中希望按照某列進行排序,而此列是無法用數據集函數還原的即無法使用高級排序進行排序設置,為此報表管理軟體FineReport提供了擴展後排序,滿足一切排序的需求. 工具/原料 報表管理軟體Fine ...
  16. 報表管理軟體FineReport中如何設置工具欄控制

    不同用戶角色登錄系統時查看同一張模板所看到工具欄按鈕不同,比如說技術支持部長角色登錄系統時,查看一張模板,看不到工具欄上的導出和列印按鈕,技術支持總調度角色卻可以,下面通過報表管理軟體FineRepo ...
  17. 報表管理軟體FineReport中如何設置動態摺疊樹

    在進行展現數據時,希望模板的數據是可以動態摺疊的,即點擊數據前面的加號才展開對應下面的數據,此時要如何實現呢?下面就通過報表管理軟體FineReport來簡單介紹一下. 工具/原料 報表管理軟體Fin ...
  18. 報表管理軟體FineReport中申請任務模板如何製作

    下面就通過報表管理軟體FineReport來進行介紹. 工具/原料 報表管理軟體FineReport7.1.1 大小:148.2M 適用平台:windows/linux 方法/步驟 定義數據集 新建工 ...
  19. 報表管理軟體FineReport中如何管理報表目錄樹

    目錄樹可以對所有模板進行管理,下面就通過報表管理軟體FineReport來進行介紹. 工具/原料 報表管理軟體FineReport7.1.1 大小:148.2M 適用平台:windows/linux ...
  20. 報表控制項FineReport中訪問op=fs報錯問題

    在對數據決策系統(op=fs)進行訪問時,會提示CREATE EMB-DB:SET LOGSIZE FAILED!的錯誤,具體報錯如下圖: 下面就通過報表控制項FineReport來解決一下這個問題. ...