- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经编写了单元测试用例来在我的 Mule 流程中单独测试消息处理器。
但是单元测试失败并出现错误
org.mule.api.transformer.TransformerMessagingException: Property "xsl-file or xsl-text" not set.
One or more of them must be set (org.mule.api.lifecycle.InitialisationException).
Message payload is of type: String
(org.mule.api.transformer.TransformerMessagingException). Message payload is of type: String
其中一个转换器是 XSLT,如下所示。
<mule-xml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="C:\EWS\myproj\src\main\resources\xslt\DataAdder.xsl"
name="AdderXSLT" >
</mule-xml:xslt-transformer>
单元测试方法如下所示。
MessageProcessor subFlow = muleContext.getRegistry().lookupObject("AdderXSLT");
MuleEvent result = subFlow.process(getTestEvent(getFileAsString("SamplePayloads/input.xml")));
System.out.println("The output from Event is " + result.getMessageAsString());
System.out.println("The converted XML is " + result.getMessage().getPayloadAsString());
assertNotNull(result);
assertNull(result.getMessage().getExceptionPayload());
assertFalse(result.getMessage().getPayload() instanceof NullPayload);
请帮助我了解这里出了什么问题。
最佳答案
我之前遇到过类似的情况,当您不在流程的上下文中执行变压器时,您需要显式初始化变压器。为了测试 xslt 变压器,我过去使用过类似以下内容:
XsltTransformer xslt = FunctionalTestCase.muleContext.getRegistry()
.lookupObject("SuccessResponseTransformer");
xslt.setReturnDataType(DataType.STRING_DATA_TYPE);
xslt.initialise();
String result = (String) xslt.transform(srcXML);
您可以尝试类似的操作或尝试转换为 XsltTransformer 进行初始化。
我相信这是因为当您将 MP 作为流程的一部分执行时,它是 MessageProcessorChain 的一部分,将在适当的情况下初始化每个 MP。如果您看一下 AbstractMessageProcessorChain 中的以下代码 - http://grepcode.com/file/repo1.maven.org/maven2/org.mule/mule-core/3.3.1/org/mule/processor/chain/AbstractMessageProcessorChain.java#AbstractMessageProcessorChain.initialise%28%29 :
public void initialise() throws InitialisationException
{
for (MessageProcessor processor : processors)
{
// MULE-5002 TODO review MP Lifecycle
if (processor instanceof Initialisable /* && !(processor instanceof Transformer) */)
{
((Initialisable) processor).initialise();
}
}
}
请注意 (!instanceof Transformer) 已被注释掉。因此它会为您初始化 XsltTransformer。
直接引用 MessageProcessor 则不会。
关于java - 单元测试不适用于 XSLT 变压器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15119571/
streaming套餐优惠a zipsWith function zipsWith :: (Monad m, Functor h) => (forall x y. f x -> g y ->
我正在尝试制作也可以在程序包上运行的 Dart 转换器,但是我无法弄清楚当前的状态 class MyTransformer extends Transformer implements LazyTra
我的pubspec.yaml文件中包含以下行 transformers: - di - polymer: entry_points: web/index.html di软件包作为依赖导
我正在尝试从 attoparsec 解构 IResult monad分成几 block 。这是IResult data IResult t r = Fail t [String] String
我正在阅读现实世界 Haskell 中的 monad 转换器。在以下示例中,堆栈为 Writer在顶部State在Reader之上在IO之上。 {-# Language GeneralizedNewt
我已经编写了单元测试用例来在我的 Mule 流程中单独测试消息处理器。 但是单元测试失败并出现错误 org.mule.api.transformer.TransformerMessagingExcep
“Monads 允许程序员使用顺序构建 block 来构建计算”,因此它允许我们组合一些计算。如果是这样,那为什么下面的代码不能运行呢? import Control.Monad.Trans.Stat
这个问题与其他地方已经涵盖的问题很接近,但我还没有找到任何专门解决这个问题的内容(至少不是以我能够理解的方式)。 我想以取决于各种随机选择的方式更新状态。由于我正在使用 RandomSource 类型
我是 Spring 集成新手,正在从事 SI 项目。我正在做一项简单的工作,从 channel (fromAdapter)获取消息,调用转换器并将输出发送到另一个 channel (toQueue)。
我最近安装了 OrientDB 并尝试使用 ETL 模块创建导入。 在 OS X 上运行,我使用自制软件安装了 orientDB。 我创建了以下 ETL 脚本: { "config": {
我有两个变压器,平移和旋转如下: namespace bg = boost::geometry; namespace trans = bg::strategy::transform; trans::t
我指的是来自 stackoverflow 的这个答案,但我找不到关于我的问题的任何线索:[https://stackoverflow.com/questions/63141267/importerro
我正在寻找一个 monad 转换器,我可以用它来发出 HTTP(等)类型的请求/响应。用途与 cURL 命令行工具类似。 [已编辑] 最佳答案 嗯,有 curl包,它使用 IO monad。 关于ha
向哈斯凯勒同胞们问好。 这是一个更大的约束满足问题的玩具版本,我是目前正在努力。 下面的代码使用列表 monad 转换器来表示给定的正整数n作为不同小偶数的总和方法。 import Control.M
我正在寻找一个让我很困扰的场景的解决方案。 我正在开发 mule 3.3。 我有一些传入的 XML 和来自丰富器的第二个 XML。 现在,来自丰富器的 xml 将被添加到我的输入 XML 中。 我的流
我指的是来自 stackoverflow 的这个答案,但我找不到关于我的问题的任何线索:[https://stackoverflow.com/questions/63141267/importerro
我想将 SXSSF 转换器与 JXLS 一起使用。我试图以这样一种方式编写我的模板,即我不会得到“试图在已经写入磁盘的范围内写入一行”异常。该模板捕获已知列(例如“HEADER 0”)和未知列(以“_
早上好,我正在尝试复制此内容:http://jxls.sourceforge.net/getting_started.html 使用我自己的集体诉讼而不是员工。但我有一些问题。 这是我的代码: pac
我们在 ASP.NET MVC 元素中使用 BundleTransformer 来 bundle 我们的样式文件。 这很好用,但是我们注意到当我们使用 @import CSS at 规则在 LESS
我正在微调来自 huggingface 的 bert 模型.有没有办法手动设置某个词块的初始嵌入?例如使单词“dog”的初始嵌入等于 torch.ones(768) .谢谢! 最佳答案 您可以设置 B
我是一名优秀的程序员,十分优秀!