2015-10-29 59 views
0

在mule项目中,我有一个需要访问cert.pem文件的Python脚本组件。Mule:从CloudHub中的Python脚本组件访问文件资源

在AnyPointStudio中,我将它放在./src/main/resources/文件夹中。 当我创建一个Mule Deployable Archive时,它将在./target/classes/文件夹中结束。

我应该指定什么路径来访问此文件。

我已经试过这工作

path = 'cert.pem' 

## And ## 

cwd = os.getcwd() 
path = os.path.join(cwd, 'classes','cert.pem') 
path = os.path.join(cwd, 'target','classes','cert.pem') 
path = os.path.join(cwd, 'src','main', 'resources','cert.pem') 

无。
有什么建议吗?

支持问题: 在CloudHub简单的print()语句在.py脚本不记录,我试过log("message")但是引发了一个异常。有任何想法吗?

回答

0

我不知道Python,但该文件应该只在类路径中可用。因此,src/main/resources中的所有内容都将在类路径中可用。所以'src/main/resources/cert.pem'应该被引用为'cert.pem'

0

所以,至少在Python中,类路径与工作目录路径不同。但我终于弄清楚了如何使用MULE_HOME env变量来获取类路径。

base = os.path.join(os.getenv('MULE_HOME'), 'apps', 'your-app-name', 'classes') 

然后你就可以得到这样的certFile中:

certfile = os.path.join(base, 'cert.pem')