直到两天前,我安装的带有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"错误.
该死.
显然这是 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
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |