freemarker调用时出现的问题,急!!!

发布于 2021-11-15 06:45:00 字数 3639 浏览 721 评论 6

java.io.FileNotFoundException: at freemarker.log.Log4JLoggerFactory.getLogger(Log4JLoggerFactory.java:65)
 at freemarker.log.Logger.getLogger(Logger.java:255)
 at freemarker.template.utility.SecurityUtilities.(SecurityUtilities.java:67)
 at freemarker.ext.beans.BeansWrapper.(BeansWrapper.java:146)
 at freemarker.template.ObjectWrapper.(ObjectWrapper.java:69)
 at freemarker.core.Configurable.(Configurable.java:132)
 at freemarker.template.Configuration.(Configuration.java:109)
 at freemarker.template.Configuration.(Configuration.java:96)
 at com.easy.ocrm.service.wealth.toword.DocumentHandler.(DocumentHandler.java:24)
 at com.easy.ocrm.service.wealth.toword.SaveToWord.main(SaveToWord.java:6)

其中DocumentHandler:

package com.easy.ocrm.service.wealth.toword;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;


public class DocumentHandler {
 private Configuration configuration = null;

 public DocumentHandler() {
  configuration = new Configuration();
  configuration.setDefaultEncoding("utf-8");
 }

 public void createDoc() {
  //要填入模本的数据文件
  Map dataMap=new HashMap();
  getData(dataMap);
  //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,
  //这里我们的模板是放在com.me.template包下面
  configuration.setClassForTemplateLoading(this.getClass(), "/com/easy/ocrm/service/wealth/toword/wordtemplate");
  Template t=null;
  try {
   //test.ftl为要装载的模板
   t = configuration.getTemplate("test.ftl");
  } catch (IOException e) {
   e.printStackTrace();
  }
  //输出文档路径及名称
  //File outFile = new File("C:/outFile.doc");
  File outFile = new File("D:/temp/outFile.doc");
  Writer out = null;
  try {
   out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
  } catch (FileNotFoundException e1) {
   e1.printStackTrace();
  }
  
        try {
   t.process(dataMap, out);
  } catch (TemplateException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 
 /**
  * 注意dataMap里存放的数据Key值要与模板中的参数相对应
  * @param dataMap
  */
  private void getData(Map dataMap)
   {
    dataMap.put("ablity", "高风险");
    dataMap.put("name", "婷婷");
    dataMap.put("score", 98);
    dataMap.put("remark", "这是财富模块测试信息,word里面的内容可以模板定制添加");
   
    dataMap.put("author", "tingting");
    List _table1=new ArrayList();
   
    Table1 t1=new Table1();
    t1.setDate("2010-10-1");
    t1.setText("制定10月开发计划内容。");
    _table1.add(t1);
   
    Table1 t2=new Table1();
    t2.setDate("2010-10-2");
    t2.setText("开会讨论开发计划");
    _table1.add(t2);
   
    dataMap.put("table1", _table1);
   
   
    List _table2=new ArrayList();
    for(int i=0;i<5;i++)
    {
     Table2 _t2=new Table2();
     _t2.setDetail("测试开发计划"+i);
     _t2.setPerson("张三——"+i);
     _t2.setBegindate("2010-10-1");
     _t2.setFinishdate("2010-10-31");
     _t2.setRemark("备注信息");
     _table2.add(_t2);
    }
    dataMap.put("table2", _table2);
   
   }
}

saveWord的内容:::

package com.easy.ocrm.service.wealth.toword;

public class SaveToWord {

 public static void main(String[] args) {
  DocumentHandler dh=new DocumentHandler();
  dh.createDoc();
 }
}

怎么解决呢??大家帮忙一下,谢谢大家了!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

睫毛上残留的泪 2021-11-16 02:41:30

引用来自#5楼“Louisa”的帖子

引用来自#3楼“刘婷婷”的帖子

引用来自#2楼“绿悠悠”的帖子

这个问题好像是 log4j 本身的问题,跟freemarker似乎无关

是不是 log4j 配置里指定了一些日志文件路径在你本机上不存在的

终陌 2021-11-16 02:38:52

引用来自#4楼“绿悠悠”的帖子

freemarker 是可以不依赖 log4j 包的哦,把 log4j 的 jar 包干掉试试

爱的故事 2021-11-16 02:34:13

引用来自#3楼“刘婷婷”的帖子

引用来自#2楼“绿悠悠”的帖子

这个问题好像是 log4j 本身的问题,跟freemarker似乎无关

是不是 log4j 配置里指定了一些日志文件路径在你本机上不存在的

蓝颜夕 2021-11-16 01:49:41

freemarker 是可以不依赖 log4j 包的哦,把 log4j 的 jar 包干掉试试

德意的啸 2021-11-16 00:24:29

引用来自#2楼“绿悠悠”的帖子

这个问题好像是 log4j 本身的问题,跟freemarker似乎无关

是不是 log4j 配置里指定了一些日志文件路径在你本机上不存在的

疑心病 2021-11-16 00:04:27

这个问题好像是 log4j 本身的问题,跟freemarker似乎无关

是不是 log4j 配置里指定了一些日志文件路径在你本机上不存在的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文