Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有空内容的VelocityEngine模板_Java_Xml_Multithreading_Velocity - Fatal编程技术网

Java 具有空内容的VelocityEngine模板

Java 具有空内容的VelocityEngine模板,java,xml,multithreading,velocity,Java,Xml,Multithreading,Velocity,我们已经开始使用VelocityEngine,我们已经看到一些有线行为。对于velocity模板中的每个数据,我们确保它不会为null,如果为null,至少我们将其设置为空字符串,这样就不会发生数据错误。我们也有发送电子邮件的方法,我们已经使用多年了,我们知道它工作得很好 然而,每发送几封电子邮件,我们就开始收到没有内容的空电子邮件。所以我假设这与加载模板有关。这个代码块将被成千上万的用户频繁调用。下面是我们用来初始化VE和设置所有数据的代码块。是否存在导致模板为空的错误?还是线程问题?不太清楚

我们已经开始使用VelocityEngine,我们已经看到一些有线行为。对于velocity模板中的每个数据,我们确保它不会为null,如果为null,至少我们将其设置为空字符串,这样就不会发生数据错误。我们也有发送电子邮件的方法,我们已经使用多年了,我们知道它工作得很好

然而,每发送几封电子邮件,我们就开始收到没有内容的空电子邮件。所以我假设这与加载模板有关。这个代码块将被成千上万的用户频繁调用。下面是我们用来初始化VE和设置所有数据的代码块。是否存在导致模板为空的错误?还是线程问题?不太清楚。我感谢你的帮助

 StringWriter writer = new StringWriter();  



VelocityEngine ve = new VelocityEngine();
      ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
      ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
      Template temp= ve.getTemplate("emailTemplate.xml");

  /**
   * Prepare context data
   */
  VelocityContext context = new VelocityContext();

  //Initializing all to empty 

context.put("fullName", "");
    context.put("cFName","");
    context.put("cLName","");
    context.put("cPhone", "");
    context.put("cEmail", "");
    context.put("emailType",0);

context.put("street","");
context.put("city","");
context.put("state","");
context.put("zip","");

context.put("hasCMessage", false);
context.put("numBed", "");


  //Fill the context with the right data if the coming data is not null

context.put("fullName", (client.getFullName()!=null? client.getFullName() :"" ));

 temp.merge(context, writer);

您的模板是什么样子的?您是否尝试过简单地打印渲染输出?删除其他步骤有助于确定问题的范围。@AndreM我可以将xml模板粘贴到此处。但我们认为这不是问题所在,因为例如,它适用于5封电子邮件,即使我们提供了类似的数据,第6封也将是空的。无论如何,我正在努力提供更多的细节。谢谢。好的,所以模板听起来不是问题,所以试着看看是否可以删除电子邮件组件以进行测试。还要查看是否是模板的特定参数导致了问题。@WowBow您找到了任何根本原因吗?