아래 프로그램은 Oracle 11g에 연결하여 레코드를 가져 오는 것입니다. 어떻게 pipeline.apply()에서 코더에 대해 NullPointerException을 주는지.JDBC Beam을 사용하여 Oracle에서 가져 오기
ojdbc14.jar를 프로젝트 종속성에 추가했습니다.
public static void main(String[] args) {
Pipeline p = Pipeline.create(PipelineOptionsFactory.create());
p.apply(JdbcIO.<KV<Integer, String>>read()
.withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create(
"oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@hostdnsname:port/servicename")
.withUsername("uname")
.withPassword("pwd"))
.withQuery("select EMPID,NAME from EMPLOYEE1")
.withRowMapper(new JdbcIO.RowMapper<KV<Integer, String>>() {
public KV<Integer, String> mapRow(ResultSet resultSet) throws Exception {
return KV.of(resultSet.getInt(1), resultSet.getString(2));
}
}));
p.run();
}
는 아래 오류를 제공합니다. 단서가 있습니까? 이
Exception in thread "main" java.lang.NullPointerException: coder
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:228)
at org.apache.beam.sdk.io.jdbc.JdbcIO$Read.validate(JdbcIO.java:283)
at org.apache.beam.sdk.io.jdbc.JdbcIO$Read.validate(JdbcIO.java:216)
at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:399)
at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:307)
at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:47)
at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:158)
at org.apache.beam.examples.v030.JdbcUtil.main(JdbcUtil.java:21)
위의 내용을 변경 한 후 위의 게시물을 편집했습니다. 아래에 오류가 있습니다. 스레드 "main"의 예외 org.apache.beam.runners.direct.repackaged.com.google.common.util.concurrent.UncheckedExecutionException : org.apache.beam.sdk.util.UserCodeException : java.lang.AbstractMethodError : oracle. jdbc.driver.T4CConnection.isValid (I) Z – naga
누락 된 것이 있습니까? – naga
@ Kenn, 문제를 해결하려면 추가 정보가 필요한 경우 알려주십시오. – naga