2016-04-28 46 views
0

我正在爲此編寫一個自定義控制器application。你可以在/ ssf/samples/customcontroller下找到一個例子。對於我的自定義控制器,我使用了也被kablink項目使用的Spring-Framework。現在我嘗試通過getSimpleJdbcTemplate().queryForObject(query, String.class, new MapSqlParameterSource());執行一個sql腳本(my.sql)。該sql文件只包含一行select label from question where questionid=3;無法讀取文件彈出

但我遇到困難通過閱讀文件my.sql。在控制器我調用該方法graph.sunburstJson()和返回值推至視圖:

ApplicationContext context = new ClassPathXmlApplicationContext("/resources/spring/config/GraphBean.xml"); 
     GraphDao graph = (GraphDao) context.getBean("graphDao"); 
response.setRenderParameter("json", graph.sunburstJson()); 

要看到,如果方法sunburstJson讀取文件我嘗試返回my.sql的內容:

public class GraphDaoImpl extends SimpleJdbcDaoSupport implements GraphDao{ 

    @Override 
    public String sunburstJson() { 
     String query="select label from question where questionid=5"; 

     try { 
      InputStream is = getClass().getResourceAsStream("/resources/spring/sql/my.sql"); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
      LineNumberReader fileReader = new LineNumberReader(reader); 
      query = JdbcTestUtils.readScript(fileReader); 
     } catch (IOException e) { 
      StringWriter errors = new StringWriter(); 
      e.printStackTrace(new PrintWriter(errors)); 
      query=errors.toString()+"help"; 
     } 
     return query+"test";//(String)getSimpleJdbcTemplate().queryForObject(query, String.class, new MapSqlParameterSource()); 

    } 
} 

但它返回沒有錯誤,沒有輸出,我不能解釋發生了什麼。這從行JdbcTestUtils.readScript開始。與

EncodedResource resource = new EncodedResource(context.getResource("/resources/spring/sql/my.sql"), "UTF-8"); 

同樣的行爲如果我嘗試

BufferedReader reader = new BufferedReader(new FileReader(new File("resources/spring/sql/my.sql"))); 
//or 
BufferedReader reader = new BufferedReader(new FileReader("/resources/spring/sql/my.sql")); 

我得到未發現異常堆棧跟蹤文件。

+0

請提供更多信息和更多的代碼,以便我們可以幫助您。 –

+0

請參閱我的編輯。 – StellaMaris

回答

0

我在該項目中增加了library的新版本,現在它可以正常工作。