2013-10-29 59 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