0
exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, "images/jasper_tmp/");
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/images/jasper_tmp/");

我在 GWT 项目中使用 jasper 报告。
我的PROD平台是Win2003上的TOMCAT 5.5。
我也尝试过 TOMCAT 7 / Windows 7。

这些行在 servlet 中从应用程序的服务器端调用。所以我不能使用来自 com.google.gwt.core.client.GWT 的静态方法。

看来我的问题与 HTML 格式的 jasper 报告类似

在 DEV 模式下,在 Eclipse 中,一切正常。当我以 HTML 格式获取我的 jasperreport 时,所有图像都会显示。

在我的 PROD 环境中,它是一个 TOMCAT 服务器,jasper 报告中的图像不会以 HTML 格式显示。在 PROD 服务器上,在 %TOMCAT_HOME% 中exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, "images/jasper_tmp/");生成images/jasper_tmp/,而不是在我的应用程序的部署目录中。
在文件系统上%TOMCAT_HOME%/images/jasper_tmp/,我期望%TOMCAT_HOME%/webapps/my_project/images/jasper_tmp/.

如何将图像作为参数传递?(如果可能的话)......正如答案中所建议的那样。
我是否需要安装 Apache Web Server 来制定任何重写规则?我的 PROD 服务器只有 TOMCAT。

谢谢。

4

1 回答 1

0

请使用Firefox with Firebug Pluginor or Chrome with Chrome Dev Toolor IE8 Dev Tool 调查其image pathor cssor orjavascript错误,并使用更多详细信息更新问题。

萤火虫-getfirebug.com

铬 - https://developers.google.com/chrome-developer-tools/docs/overview

IE8 - http://blogs.msdn.com/b/ie/archive/2008/03/07/improved-productivity-through-internet-explorer-8-developer-tools.aspx

1)您不需要使用重写规则进行apache代理,除非它的性能要求是提供静态资源。

2) 您可以使用 GWT.isProdModel、GWT.getHostPageBaseURL()、GWT.getModuleName() 或 getModuleBaseForStaticFiles() 调整 DevMode 和 Production Mode 的图像路径

if (com.google.gwt.core.shared.GWT.isProdMode()){
 //Path Used in production mode
} else {
 //Path Used in dev mode
}

编辑 以上信息对客户端有帮助。在服务器端,Jetty 服务器上下文路径因您在服务器(如 tomcat)中的 webapp 部署而异。您可以按照此处提到的说明将其修复为与 tomcat 相同https://groups.google.com/d/topic/google-web-toolkit/a8OsRmMSaMg/discussion

<?xml version="1.0"  encoding="UTF-8"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" 
"http://jetty.mortbay.org/configure.dtd"> 
<Configure class="org.mortbay.jetty.webapp.WebAppContext"> 

        <Set name="contextPath">/myapp</Set> 

</Configure> 
于 2012-11-30T11:19:55.627 回答