代码之家  ›  专栏  ›  技术社区  ›  Developer

在org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1198)获取NullPointerException

  •  1
  • Developer  · 技术社区  · 8 年前

        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.5</version>
    

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

    在执行以下指令时:

    VelocityContext vc = getVelocityContext(valuesMap);
    StringWriter writer = new StringWriter();
    Velocity.evaluate(vc, writer, "[generate email processor - event id = " + event.getId() + "]", bodyTemplate);
    

    我明白了

    java.lang.NullPointerException
            at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1198)
            at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1181)
            at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1297)
            at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1265)
            at org.apache.velocity.app.Velocity.evaluate(Velocity.java:180)
            at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.generateMessage(GenerateMessageProcessor.java:1361)
            at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.run(GenerateMessageProcessor.java:1155)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:745)
    java.lang.NullPointerException
            at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1198)
            at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1181)
            at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1297)
            at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1265)
            at org.apache.velocity.app.Velocity.evaluate(Velocity.java:180)
            at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.generateMessage(GenerateMessageProcessor.java:1361)
            at net.nationalpayment.core.backend.GenerateMessageProcessor$EventProcessor.run(GenerateMessageProcessor.java:1155)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:745)
    

    我在执行应用程序期间初始化RuntimeSingleton一次,如下所示。

    if(!RuntimeSingleton.isInitialized()) {
            RuntimeSingleton.init();
        }
    

    为什么我会得到NullPointerException?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Developer    5 年前

    指定以下属性后,根据我的要求,将所有其他属性保留为默认值。问题解决了。

    运行时。log=/tmp/velocity.log