【问题标题】:I have Velocity transformer issue as I have been Migrating from mule 2.2.1 to Mule 3.3.2我一直在从 mule 2.2.1 迁移到 Mule 3.3.2 时遇到速度转换器问题
【发布时间】:2017-06-30 09:26:30
【问题描述】:

您好,提前感谢您的帮助。 我正在尝试将应用程序从 Mule 2.2.1 迁移到 Standalone Mule。 Mule 2.2.1 嵌入到 tomcat 中。带有 Mule 2.2.1 的原始速度转换器可以正常工作,但是当我开始使用独立的 Mule 3.3.2 时,它就不行了。 这是我的 mule-config 文件片段:

<spring:bean class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
        <spring:property name="velocityProperties">
            <spring:map>
                <spring:entry key="resource.loader" value="class"/>
                <spring:entry key="class.resource.loader.class" value="org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"/>
            </spring:map>
        </spring:property>
    </spring:bean>

当我启动 mule 时,出现错误:

Caused by: org.mule.api.MuleRuntimeException: Failed to lookup beans of type interface org.mule.api.transformer.Converter from the Spring registry
        at org.mule.config.spring.SpringRegistry.internalLookupByType(SpringRegistry.java:184)
        at org.mule.config.spring.SpringRegistry.lookupByType(SpringRegistry.java:171)
        at org.mule.registry.AbstractRegistryBroker.lookupByType(AbstractRegistryBroker.java:160)
        at org.mule.registry.MuleRegistryHelper.lookupByType(MuleRegistryHelper.java:704)
        at org.mule.config.bootstrap.SimpleRegistryBootstrap.registerTransformers(SimpleRegistryBootstrap.java:322)
        at org.mule.config.bootstrap.SimpleRegistryBootstrap.initialise(SimpleRegistryBootstrap.java:185)
        ... 40 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.ui.velocity.VelocityEngineFactoryBean#0' defined in URL [fi
rror: org/apache/velocity/exception/VelocityException
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:997)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:943)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:767)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:698)
        at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:519)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:319)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:396)
        at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1164)
        at org.mule.config.spring.SpringRegistry.internalLookupByType(SpringRegistry.java:178)
        ... 45 more
Caused by: java.lang.NoClassDefFoundError: org/apache/velocity/exception/VelocityException
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2595)
        at java.lang.Class.getConstructor0(Class.java:2895)
        at java.lang.Class.getDeclaredConstructor(Class.java:2066)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:67)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:990)

我对 Spring 有这些依赖

<dependency>
            <artifactId>spring-beans</artifactId>
            <groupId>org.springframework</groupId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <artifactId>spring-core</artifactId>
            <groupId>org.springframework</groupId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <artifactId>spring-context</artifactId>
            <groupId>org.springframework</groupId>
            <version>${spring-version}</version>
        </dependency>

         <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring-version}</version>
        </dependency>

spring-version 是 3.3.1

感谢您的帮助

【问题讨论】:

    标签: java spring mule


    【解决方案1】:

    可能是类加载器问题。

    在 mule-deploy.properties 文件中声明 loader.override=org.springframework.ui.velocity 并尝试(建议在 https://forums.mulesoft.com/questions/2587/sending_an_email_using_velocity_templates-2ke02.html 中)。

    【讨论】:

    • 感谢您的建议。您是对的,但除此之外,我还必须在 %MULEHOME%/lib/user 目录中添加 2 个 jar。
    【解决方案2】:

    尝试在你的 pom 中添加速度依赖 -

    <dependency>
                    <groupId>org.apache.velocity</groupId>
                    <artifactId>velocity</artifactId>
                    <version>1.7</version>
                </dependency>
    

    【讨论】:

      【解决方案3】:

      非常感谢您的回复。

      我遇到的问题不是因为依赖。 其实它就在那里。

      解决方案是添加 2 个速度罐:velocity 和 velocity-tools 到 %MULE_HOME%/lib/user. 这解决了问题。 Mule 完成特殊任务(如转换或 JMS)所需的所有特定 jar 都需要将 jar 添加到 %MULE_HOME%/lib/user 目录

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-12
        相关资源
        最近更新 更多