2013-10-29 29 views
2

我使用Mule 3.3.1 CE。Mule XSLT不编译

如果XSL位于文件外部,我无法使XSLT变换器正常工作。

以下配置的工作原理 - 编译并生成预期的单行输出。

<mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" outputEncoding="UTF-8"> 
    <mulexml:xslt-text> 
     <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
      <xsl:output method="xml"/> 
      <xsl:template match="/"> 
       <xsl:element name="pocRequest"/> 
      </xsl:template> 
     </xsl:stylesheet> 
    </mulexml:xslt-text>     
</mulexml:xslt-transformer> 

如果我采取相同的XSL并将其移出到一个文件Test.xsl是在classpath中,文件看起来像:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml"/> 
    <xsl:template match="/"> 
     <xsl:element name="pocRequest"/> 
    </xsl:template> 
</xsl:stylesheet> 

骡子配置现在看起来像:

<mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" outputEncoding="UTF-8" 
    xsl-file="Test.xsl"/> 

结果是一个例外,它不能编译样式表:

javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected. 
    at net.sf.saxon.PreparedStylesheet.prepare(PreparedStylesheet.java:153) 
    at net.sf.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:137) 
    at net.sf.saxon.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:88) 
    at org.mule.module.xml.transformer.XsltTransformer$PooledXsltTransformerFactory.makeObject(XsltTransformer.java:363) 
    at org.apache.commons.pool.impl.GenericObjectPool.addObject(GenericObjectPool.java:1615) 
    at org.mule.module.xml.transformer.XsltTransformer.initialise(XsltTransformer.java:138) 
    at org.mule.processor.chain.AbstractMessageProcessorChain.initialise(AbstractMessageProcessorChain.java:79) 
    at org.mule.api.processor.MessageProcessors$LifecyleAwareMessageProcessorWrapper.initialise(MessageProcessors.java:62) 
    at org.mule.processor.chain.AbstractMessageProcessorChain.initialise(AbstractMessageProcessorChain.java:79) 
    at org.mule.api.processor.MessageProcessors$LifecyleAwareMessageProcessorWrapper.initialise(MessageProcessors.java:62) 
    at org.mule.processor.chain.AbstractMessageProcessorChain.initialise(AbstractMessageProcessorChain.java:79) 
    at org.mule.routing.MessageProcessorFilterPair.initialise(MessageProcessorFilterPair.java:93) 
    at org.mule.routing.AbstractSelectiveRouter.initialise(AbstractSelectiveRouter.java:94) 
    at org.mule.processor.chain.AbstractMessageProcessorChain.initialise(AbstractMessageProcessorChain.java:79) 
    at org.mule.construct.AbstractFlowConstruct.initialiseIfInitialisable(AbstractFlowConstruct.java:309) 
    at org.mule.construct.AbstractPipeline.doInitialise(AbstractPipeline.java:202) 
    at org.mule.construct.AbstractFlowConstruct$1.onTransition(AbstractFlowConstruct.java:111) 
    at org.mule.construct.AbstractFlowConstruct$1.onTransition(AbstractFlowConstruct.java:105) 
    at org.mule.lifecycle.AbstractLifecycleManager.invokePhase(AbstractLifecycleManager.java:141) 
    at org.mule.construct.FlowConstructLifecycleManager.fireInitialisePhase(FlowConstructLifecycleManager.java:81) 
    at org.mule.construct.AbstractFlowConstruct.initialise(AbstractFlowConstruct.java:104) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1581) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1522) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 
    at org.mule.config.spring.SpringRegistry.doInitialise(SpringRegistry.java:89) 
    at org.mule.registry.AbstractRegistry.initialise(AbstractRegistry.java:109) 
    at org.mule.config.spring.SpringXmlConfigurationBuilder.createSpringRegistry(SpringXmlConfigurationBuilder.java:116) 
    at org.mule.config.spring.SpringXmlConfigurationBuilder.doConfigure(SpringXmlConfigurationBuilder.java:73) 
    at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:46) 
    at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:78) 
    at org.mule.config.builders.AutoConfigurationBuilder.autoConfigure(AutoConfigurationBuilder.java:101) 
    at org.mule.config.builders.AutoConfigurationBuilder.doConfigure(AutoConfigurationBuilder.java:57) 
    at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:46) 
    at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:78) 
    at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory.java:80) 
    at org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:208) 
    at org.mule.module.launcher.application.ApplicationWrapper.init(ApplicationWrapper.java:64) 
    at org.mule.module.launcher.DefaultMuleDeployer.deploy(DefaultMuleDeployer.java:46) 
    at org.mule.tooling.server.application.ApplicationDeployer.run(ApplicationDeployer.java:56) 
    at org.mule.tooling.server.application.ApplicationDeployer.main(ApplicationDeployer.java:88) 

我不明白我在做什么错。

+0

自己的XSL似乎编译好。所以你可能需要看看外面的错误。 –

+0

是的,我测试了第一件事。 – Tad

+0

我没有看到你指定的,所以这就是我发表评论的原因。虽然这也意味着,除非您的问题中涉及到骡子的情侣线有问题,否则任何人都可能没有足够的信息来进一步排除此问题。这只是一个观察,虽然我对骡子一无所知。 –

回答

2

你的第一个问题是你没有看到真正的错误信息,告诉你样式表有什么问题。异常堆栈跟踪只会告诉你有错误,它不会告诉你它们是什么。我不知道穆勒,但是堆栈轨迹显示它在下面调用撒克逊。撒克逊人会将错误信息写入System.err;你需要找到某种方法确保你看到System.err中的内容,或者将错误重定向到其他地方。我无法告诉你如何在没有任何关于骡的知识方面取得成就。

样式表没有什么明显的错误,所以我的猜测是你正在编译的代码不是你认为的那样。修复第一个问题(以便您可以看到错误消息)将帮助您修复第二个问题。

+0

好的。我会试着找出Mule倾倒解析结果的地方。 – Tad

0

您的代码在我的机器上编译得很好.. Mule3.3.2Java 1.6_37。在流程失败之前,流程中是否有任何内容?尝试隔离您的流量只是xslt-transformer,看看它是否有帮助

+0

我确实已将它简化为流程中的该陈述。我不知道这是3.3.1和3.3.2之间的区别。 – Tad

+0

我们也在3.3.1上,但几件事情没有按预期工作。 3.3.1中有错误。尝试3.3.2,正如我所说,它在我的机器上工作 –

+0

谢谢Lerner。当我能让团队切换时,我会的。现在,我想我会解决它。 – Tad