2017-09-28 1 views
0

방해석을 사용할 때 NPE를 받았습니다.JIRA 데이터베이스에서 H2와 Apache 방해석을 사용할 때 NPE

[INFO] [talledLocalContainer] java.sql.SQLException: Error while executing SQL "select * from jira.PROJECT_KEY": null 
[INFO] [talledLocalContainer] at org.apache.calcite.avatica.Helper.createException(Helper.java:56) 
[INFO] [talledLocalContainer] at org.apache.calcite.avatica.Helper.createException(Helper.java:41) 
[INFO] [talledLocalContainer] at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156) 
[INFO] [talledLocalContainer] at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:218) 
[INFO] [talledLocalContainer] at com.codedoers.jira.smartql.QueryController.request(QueryController.java:23) 
... 
[INFO] [talledLocalContainer] Caused by: java.lang.NullPointerException 
[INFO] [talledLocalContainer] at Baz.bind(Unknown Source) 
[INFO] [talledLocalContainer] at org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(CalcitePrepare.java:335) 
[INFO] [talledLocalContainer] at org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(CalciteConnectionImpl.java:294) 
[INFO] [talledLocalContainer] at org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(CalciteMetaImpl.java:559) 
[INFO] [talledLocalContainer] at org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(CalciteMetaImpl.java:550) 
[INFO] [talledLocalContainer] at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:67) 
[INFO] [talledLocalContainer] at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:44) 
[INFO] [talledLocalContainer] at org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:630) 
[INFO] [talledLocalContainer] at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:607) 
[INFO] [talledLocalContainer] at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:638) 
[INFO] [talledLocalContainer] at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:149) 
[INFO] [talledLocalContainer] ... 240 more 

내가 따라서 컨테이너가 JIRA이다, JIRA를위한 부가 기능을 개발하고 :

@Autowired 
public CalciteBootstrap(DatasourceProvider datasourceProvider) throws SQLException { 
    this.datasource = datasourceProvider.fetchDatasource(); 
    log.debug("Datasource fetched - {}", datasource); 
    this.connection = createRootSchema(); 
    this.schema = JdbcSchema.create(connection.getRootSchema(), "PUBLIC", datasource, null, null); 

    connection.getRootSchema().add("jira", schema); 
    connection.createStatement().executeQuery("select * from jira.PROJECT_KEY"); 
} 

private CalciteConnection createRootSchema() { 
    try { 
     Class.forName("org.apache.calcite.jdbc.Driver"); 
     Properties info = new Properties(); 
     info.setProperty("lex", "JAVA"); 
     Connection connection = DriverManager.getConnection("jdbc:calcite:", info); 
     CalciteConnection calciteConnection 
        = connection.unwrap(CalciteConnection.class); 
     return calciteConnection; 
    } catch (SQLException | ClassNotFoundException ex) { 
     throw new RuntimeException(ex); 
    } 
} 

을 다음과 NPE로 내 코드입니다. DB는 H2입니다. Calcite를위한 JIRAs 데이터 소스를 빌리고 있습니다.

방해석에 대해 NPE를 보는 사람이 있습니까?

답변

0

코드 덤비는 후, 나는 조각을 다음과 같은 것이 작동하는 것으로 나타났습니다

this.schema = JdbcSchema.create(connection.getRootSchema(), "JIRA", datasource, null, null); 
connection.getRootSchema().add("JIRA", schema); 
관련 문제