Файл XSLT 2.0 с удаленного сервера не обрабатывается по верблюжьему маршруту в ServiceMix - PullRequest
0 голосов
/ 04 июля 2019

Я использую ServiceMix 7.0.1 под управлением Camel 2.16.5.

У меня есть маршрут, который отправляет сообщение в файл XSLT 2.0 на другом сервере для обработки.Верблюд-саксонская функция была установлена.Это кусок кода для этого.

<to uri="xslt://http://<ipaddress>/path/to/file.xsl?transformerFactoryClass=net.sf.saxon.TransformerFactoryImpl"/>

Это выдает ошибку:

Failed to resolve endpoint: xslt://http://<ipaddress>/path/to/file.xsl?transformerFactoryClass=net.sf.saxon.TransformerFactoryImpl due to: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: "name" attribute is not allowed on the xsl:function element!
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1072)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:944)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3260)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2983)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2814)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2810)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2833)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2810)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2779)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:180)[40:org.apache.camel.camel-blueprint:2.16.5]
        at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:212)[40:org.apache.camel.camel-blueprint:2.16.5]
        at org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(BlueprintCamelContext.java:150)[40:org.apache.camel.camel-blueprint:2.16.5]
        at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4578)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.Felix.registerService(Felix.java:3570)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:492)[28:org.apache.aries.blueprint.core:1.7.1]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:422)[28:org.apache.aries.blueprint.core:1.7.1]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[28:org.apache.aries.blueprint.core:1.7.1]
        at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)[28:org.apache.aries.blueprint.core:1.7.1]
        at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)[28:org.apache.aries.blueprint.core:1.7.1]
        at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)[28:org.apache.aries.blueprint.core:1.7.1]
        at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)[28:org.apache.aries.blueprint.core:1.7.1]
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[39:org.apache.aries.util:1.1.1]
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[39:org.apache.aries.util:1.1.1]
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[39:org.apache.aries.util:1.1.1]
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[39:org.apache.aries.util:1.1.1]
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[39:org.apache.aries.util:1.1.1]
        at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4562)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2172)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)[org.apache.felix.framework-5.6.2.jar:]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253)[4:org.apache.felix.fileinstall:3.5.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225)[4:org.apache.felix.fileinstall:3.5.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1213)[4:org.apache.felix.fileinstall:3.5.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:507)[4:org.apache.felix.fileinstall:3.5.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361)[4:org.apache.felix.fileinstall:3.5.8]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312)[4:org.apache.felix.fileinstall:3.5.8]
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: xslt://http://<ipaddress>/path/to/file.xsl?transformerFactoryClass=net.sf.saxon.TransformerFactoryImpl due to: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: "name" attribute is not allowed on the xsl:function element!
        at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:587)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:79)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:211)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:107)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:113)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.ProcessorDefinition.createProcessor(ProcessorDefinition.java:484)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.ProcessorDefinition.createOutputsProcessorImpl(ProcessorDefinition.java:447)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.ProcessorDefinition.createOutputsProcessor(ProcessorDefinition.java:414)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.TryDefinition.createProcessor(TryDefinition.java:70)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:535)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:496)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:220)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1069)[43:org.apache.camel.camel-core:2.16.5]
        ... 44 more
Caused by: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: "name" attribute is not allowed on the xsl:function element!
        at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:933)[:]
        at org.apache.camel.builder.xml.XsltBuilder.setTransformerSource(XsltBuilder.java:360)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.component.xslt.XsltEndpoint.loadResource(XsltEndpoint.java:334)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.component.xslt.XsltEndpoint.doStart(XsltEndpoint.java:388)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:3234)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:1209)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1170)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1166)[43:org.apache.camel.camel-core:2.16.5]
        at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:583)[43:org.apache.camel.camel-core:2.16.5]
        ... 58 more
Caused by: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: "name" attribute is not allowed on the xsl:function element!
        at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:925)[:]
        ... 67 more
Caused by: javax.xml.transform.TransformerException: "name" attribute is not allowed on the xsl:function element!
        at org.apache.xalan.processor.StylesheetHandler.error(StylesheetHandler.java:919)[:]
        at org.apache.xalan.processor.StylesheetHandler.error(StylesheetHandler.java:947)[:]
        at org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:355)[:]
        at org.apache.xalan.processor.XSLTElementProcessor.setPropertiesFromAttributes(XSLTElementProcessor.java:268)[:]
        at org.apache.xalan.processor.ProcessorLRE.startElement(ProcessorLRE.java:283)[:]
        at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:623)[:]
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)[:]
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)[:]
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)[:]
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)[:]
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)[:]
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)[:]
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)[:]
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)[:]
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)[:]
        at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:312)[:]
        at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:158)[:]
        at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:623)[:]
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)[:]
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)[:]
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)[:]
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)[:]
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)[:]
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)[:]
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)[:]
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)[:]
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)[:]
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)[:]
        at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:917)[:]

Однако я не получаю никакой ошибки, когда xslt присутствует в локальной папке.Перезапуск не поможет, обновление пакетов и очистка кеша тоже не помогут.Добавление saxon=true вместо transformerFactoryClass=net.sf.saxon.TransformationFactory также не помогает.

Можно ли как-нибудь заставить это работать?

1 Ответ

0 голосов
/ 04 июля 2019

Трассировка стека показывает, что вы используете Xalan, а не Saxon (также сообщение об ошибке не генерируется Saxon), так что это проблема конфигурации какого-то рода.

Боюсь, я не могу помочь тебе больше: тебе нужен эксперт по верблюдам.

...