【发布时间】:2013-05-07 23:49:04
【问题描述】:
我正在开发一个程序,该程序将读取和发送电子邮件中的图像。此图像是此进程中的一个文件夹。
问题是:如何获取进程运行的路径?
类似于'Server.MapPath',它返回文件系统中的图像路径。
提前致谢。
【问题讨论】:
标签: tibco businessworks
我正在开发一个程序,该程序将读取和发送电子邮件中的图像。此图像是此进程中的一个文件夹。
问题是:如何获取进程运行的路径?
类似于'Server.MapPath',它返回文件系统中的图像路径。
提前致谢。
【问题讨论】:
标签: tibco businessworks
如果您的图像存在于 BW 项目的文件夹中,您可以使用“检索资源”活动来获取内容。
您只需在项目中将resourcePath设置为相对路径,它将输出base64数据。
【讨论】:
SOAP RetrieveResources 可能是一个很好的解决方案,但在 BW 5.4 上为我抛出了 NullPointerException。也许这是这个版本的一个错误。
关于获取“根路径”的问题是已部署的 BW 项目不保留其原始文件夹/文件结构——部署者不会“分解”EAR 文件。因此,您不会在 BW 服务器框中找到作为单独文件的图像。
有一种简单的方法可以动态加载 XML 文件,方法是使用以下 XPath 语句:
tib:render-xml(document('tibcr://path/to/file.xml'))
但它显然会在二进制文件上失败。在 BW 项目中存储二进制数据的最佳猜测是将其存储为 Base64 或 Hex 格式的字符串常量。
【讨论】:
如果有人遇到这个问题(就像我今天所做的那样),这里有一种方法可以在应用程序中获取文件的绝对路径。以下代码可用于“Java Code”活动中,例如将 relativePath 和 absolutePath 分别作为输入和输出参数:
absolutePath = com.tibco.pe.core.Engine.getRepoAgent().getAbsoluteURIFromProjectRelativeURI(relativePath);
【讨论】: