前提
PostgreSQLに対するSELECT文の結果を表示するプログラムについて、実行時エラーが発生します。
実現したいこと
エラーを解消し、PostgreSQLに対するSELECT文の結果を表示する。
発生している問題・エラーメッセージ
ClassCastException: class com.microsoft.azure.functions.worker.binding.RpcHttpDataTarget cannot be cast to class com.microsoft.azure.functions.rpc.messages.TypedData$Builder (com.microsoft.azure.functions.worker.binding.RpcHttpDataTarget and com.microsoft.azure.functions.rpc.messages.TypedData$Builder are in unnamed module of loader 'app') Stack: java.lang.ClassCastException: class com.microsoft.azure.functions.worker.binding.RpcHttpDataTarget cannot be cast to class com.microsoft.azure.functions.rpc.messages.TypedData$Builder (com.microsoft.azure.functions.worker.binding.RpcHttpDataTarget and com.microsoft.azure.functions.rpc.messages.TypedData$Builder are in unnamed module of loader 'app') at java.base/java.util.Optional.map(Optional.java:265) at com.microsoft.azure.functions.worker.binding.DataTarget.computeFromValue(DataTarget.java:26) at com.microsoft.azure.functions.worker.binding.BindingDataStore.lambda$getDataTargetTypedValue$1(BindingDataStore.java:113) at java.base/java.util.Optional.map(Optional.java:265) at com.microsoft.azure.functions.worker.binding.BindingDataStore.getDataTargetTypedValue(BindingDataStore.java:111) at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:63) at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:37) at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:12) at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45) at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext$0(JavaWorkerClient.java:92) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)
※実行環境がAzure Functionsのため、そちらのメッセージが含まれています。
該当のソースコード
Java
1public class ConfirmQueryResult { 2 public static void main(String[] args) throws Exception{ 3 4 (--中略--) 5 OpePostgreSQL opePostgreSQL = new OpePostgreSQL(); 6 ResultSet resultSet = opePostgreSQL.readData(connection); 7 System.out.println(resultSet); 8 } 9}
Java
1public class OpePostgreSQL { 2 public ResultSet readData(Connection connection) throws SQLException { 3 PreparedStatement readStatement = connection.prepareStatement("SELECT * FROM table;"); 4 ResultSet resultSet = readStatement.executeQuery(); 5 if (!resultSet.next()) { 6 return null; 7 } 8 return resultSet; 9 } 10}