Mule Groovy脚本文件位置在Studio中工作,但不是独立的

Mule Groovy脚本文件位置在Studio中工作,但不是独立的,mule,mule-studio,Mule,Mule Studio,我有一个groovy脚本转换器,它存储在src\main\resources下的文件中。 我的项目在Mule Studio中按预期工作。当我将其部署到独立Mule服务器时,它无法部署,因为它找不到相对文件位置。 未能从类路径或文件系统加载“src\main\resources\myTransform.groovy” 我有几个问题: -这是保存groovy转换的合适位置吗? -由于在部署的版本中,src\main\resources存在于META-INF下,如何解决此问题? -若它是一个类

我有一个groovy脚本转换器,它存储在src\main\resources下的文件中。




我的项目在Mule Studio中按预期工作。当我将其部署到独立Mule服务器时,它无法部署,因为它找不到相对文件位置。
未能从类路径或文件系统加载“src\main\resources\myTransform.groovy”

我有几个问题:
-这是保存groovy转换的合适位置吗?
-由于在部署的版本中,src\main\resources存在于META-INF下,如何解决此问题?
-若它是一个类路径设置,那个么我应该修改什么来修复它(.classpath,独立服务器上的系统变量,等等)

多谢各位

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
好的,我重新安装了Mule Studio(版本:3.5.0构建Id:201312091746),并(使用Maven)从头开始构建了一个普通项目:
`

Studio中的My.classpath文件如下所示:





























在导出zip文件中,myTransform.groovy位于以下位置:
gp.zip\META-INF\src\main\resources\
我没有重新安装我的单机版

谢谢,
--不

您有放置Mule脚本的正确文件夹,但不应包括文件夹的路径,而应包括“myTransform.groovy”。右键单击Studio中的项目,查看属性->Java构建路径->源代码,然后查看Mule Standalone中部署的应用程序的结构。这应该会让你了解它是如何工作的

编辑:


您的问题似乎是,您的资源没有包含在zip的“classes”文件夹中。您需要它们在那里,而不是在META-INF子文件夹中。我只能重现一个失败的场景:如果您在Mule Studio中创建一个项目并导出它,而没有首先运行它或使用命令行Maven构建它,那么在导出之前可能不会自动构建该项目,并且zip将不包括资源应该位于的classes文件夹。在导出zip之前,请尝试使用Maven以运行方式运行Mule应用程序。如果这没有帮助,请尝试在命令行中使用
mvn包构建应用程序。命令行Maven将在应用程序的“target”文件夹中创建zip文件。

这里是我出错的地方,我将myTransform.groovy文件放入src/main/resources,而不是通过用户界面导入它。
一旦我导入了文件,它就被部署在classes文件夹中。

衷心感谢您的提示。

--Don

我遇到了一个类似的问题,我可以责怪mule示例,我试图使用mule studio上部署的解析模板ok,但当我尝试独立时。该示例在xml中设置模板在/src/main/resources/responseXml.template上的位置,该模板在mule studio上正常工作。但是,在单机版上,mule找不到模板,无法部署。我发现这是与项目结构相关的问题,而不是mule的问题(google io exception/src/main/resource)。似乎当一个生成可部署文件的资源文件被移动到项目的根目录下,并且位置应该是responseXml.template(或whateverresource.file)而没有路径时,这对我在studio和standalone上都有效。 刚刚在studio上使用groovy成功测试,我创建了

/src/main/resources/example.groovy
在xml上:

<scripting:script engine="Groovy" file="example.groovy"/>


几个小时后,我将在单机版上用groovy对其进行测试……

谢谢Anton。我试过了(在Mule Studio中)得到:错误2014-02-12 15:25:13066[[gp_integration].config.change.6.thread.1]org.Mule.module.launcher.application.DefaultMuleApplication:null org.Mule.api.lifecycle.InitializationException:未能加载“myTransform.groovy”从类路径或文件系统查看我的.classpath文件,它似乎与您的属性相匹配->Java构建路径->源代码我看到了
,新版本说:
嗯。。。当它在Studio中进行动态重新加载时,我会遇到这个错误。如果我停止它在Studio中运行并重建,它就会工作。不管怎样,每当我将它部署到独立服务器时,我总是会收到错误。。。(使用重建)当它在Studio中运行时,我得到了错误。当我在不导出的情况下进行重建时,它会在Studio中正确构建和运行。但它在部署时永远不起作用。什么?那么脚本在哪里结束<代码>src/main/app
?构建应用程序zip时是否正确嵌入了该文件?我已将该文件实际放入项目的Studio目录src/main/resources中,而不是像我应该导入的那样导入它。现在它已经导入,在部署时,我可以在两个地方看到脚本文件:
C:\mule-enterprise-standalone-3.3.0\apps\gp\classes
C:\mule-enterprise-standalone-3.3.0\apps\gp\META-INF\src\main\resources
。它可以工作,所以我想它是正确嵌入的。当你导入它时,文件在你的Studio项目中放在哪里?我将它导入到src/main/resources.Wow中,所以它基本上回到了原点,因为这是你首先放置它的地方。
/src/main/resources/example.groovy
<scripting:script engine="Groovy" file="example.groovy"/>