IBM TRIRIGA BIRT功能在Eclipse 3.6.2中安装后无法显示

mrw*_*dog 6 eclipse

直到两天前,我安装的带有BIRT的Eclipse Helios(来自一体化2.6.2软件包)工作得很好.在创建报告时,我的安装冻结了.我重新启动,然后BIRT工具不再可用.我删除了我的eclipse文件夹以及我的.metadata和.eclipse文件夹,并再次解压缩了包.通过正常设置 - 帮助>安装软件,安装'IBM TRIRIGA BIRT功能',然后重新启动.仍然没有可用的工具.还试图安装旧版和新版的一体机无济于事.我已经多次更改了工作区,日志没有显示任何错误.BIRT功能也出现在"已安装"列表中.

提前致谢.

编辑:

我的工作区的.metadata文件夹中的日志文件中存在错误,并且存在错误.所有超过2000KB的缓存jar都会引发以下错误:

org.eclipse.equinox.p2.core.ProvisionException:无法在文件中读取存储库:/ C:/Eclipse_Helios/eclipse/p2/org.eclipse.equinox.p2.repository/cache/content625995868.jar.

然后(在堆栈跟踪之后):

引起:java.io.IOException:Parser已达到Application设置的实体扩展限制"64,000".

我环顾四周,找到了几个解决方案(一个是关于eclipse中的设置,将jre设置为1.4以上(没有工作),或者创建一个名为jaxp.properties的文件并放置它$ {java .家里} /lib/jaxp.properties.

EIDT II:

所以我已经卸载了所有java版本,我发现了以下内容:

官方IBM TRIRIGA报告作者pdf说要安装java 1.5.

我已经尝试了1.5的多个版本,并且所有安装都很好,日志文件中没有任何错误.但是(这是最令人困惑的) - IBM TRIRIGA功能未在首选项中显示.没有任何错误,只是没有插件显示.

我试过java 1.6,并且该功能显示,但是当我尝试连接到数据库时,它会抛出一个连接错误:

!ENTRY com.tririga.platform.birt.preferences 4 0 2015-10-23 09:19:27.376
!MESSAGE Connection Failed
!STACK 0
com.tririga.platform.clientserver.reqresp.RequestResponseException: An Error Occurred. Contact your System Administrator. -- [MID-2406107507]
    at com.tririga.platform.clientserver.shared.http.ObjectSerializer.marshallError(ObjectSerializer.java:47)
    at com.tririga.platform.clientserver.shared.http.ObjectSerializer.marshall(ObjectSerializer.java:57)
    at com.tririga.platform.clientserver.server.http.HTTPClientConnectionHandler.doPost(HTTPClientConnectionHandler.java:133)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.tririga.platform.context.ContextFilter$2.execute(ContextFilter.java:130)
    at com.tririga.platform.context.ContextServiceImpl.runInNewReadOnlyContext(ContextServiceImpl.java:146)
    at com.tririga.platform.context.ContextFilter.doFilterInternal(ContextFilter.java:116)
    at com.tririga.platform.context.ContextFilter.doFilter(ContextFilter.java:65)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.tririga.web.filter.XSSDecodingFilter.doFilter(XSSDecodingFilter.java:61)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.tririga.web.filter.XSSURLEncodeFilter.doFilter(XSSURLEncodeFilter.java:68)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.tririga.web.filter.EncodingFilter.doFilter(EncodingFilter.java:29)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:662)
Caused by: com.tririga.platform.clientserver.reqresp.RequestResponseException: 
    at com.tririga.platform.clientserver.shared.http.ObjectSerializer.marshallError(ObjectSerializer.java:46)
Run Code Online (Sandbox Code Playgroud)

回到java 1.4,并没有显示该功能,并显示原始"64000"错误.

该死.

s.d*_*s.d 1

显然这是 Java XML 解析器的问题。它可以处理的“实体”数量上限为 64,000 个(来源充足,例如GraphDB FAQ)。

尝试entityExpansionLimit=128000在启动时将系统属性传递给 JVM。即,从命令行启动 Eclipse,添加系统属性

eclipse -DentityExpansionLimit=128000
Run Code Online (Sandbox Code Playgroud)

或者将其添加到eclipse.ini文件中(在底部):

-vmargs
-XX:MaxPermSize=128m
-Xms40m
-Xmx512m
-DentityExpansionLimit=128000
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请尝试考虑实际的财产价值。

另请注意,上述来源还说明了有关在 Tomcat 实例中运行应用程序的以下内容(不确定错误实际出现在何处,Eclipse 还是服务器?)。

不要忘记,如果在 Tomcat 中运行,则必须使用 CATALINA_OPTS 环境变量将其传递到 Tomcat 实例。-DentityExpansionLimit=128000