JAVA(ORACLEXE)接続不可の対策について教えてください。
解決したいこと
oracleXE にJAVAから接続したいです。
解決方法を教えて下さい。
※本来はMYBATISのジェネレータをテストする予定だったのですがエラーが発生しよくわからないので
ソースで接続する単純なものを作成してみたところ接続自体うまくいっていないようでした。
XEはなにかソースで操作する場合特別なドライバーがいるのでしょうか?
--環境
■Spring Tool Suite 4
Version: 4.10.0.RELEASE
Build Id: 202103111225
■OracleXE184_Win64
■ドライバー
ojdbc8.jar
■JAVA
jdk1.8-171
■接続確認をしたORACEL SQL DEVELOPER
Java(TM)プラットフォーム 1.8.0_291
Oracle IDE 21.2.1.204.1703
■SQLPLUSのコマンドも正常に接続できています。
■リスナーのサービスの起動も正常に起動していることを確認しました。
--Oracleの接続文字列の部分は
発生している問題・エラー
java.sql.SQLRecoverableException: IOエラー: The Network Adapter could not establish the connection
at ojdbc8/oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:801)
at ojdbc8/oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:782)
at ojdbc8/oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39)
at ojdbc8/oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:704)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at oracleXEtest.start.main(start.java:14)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
at ojdbc8/oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:569)
at ojdbc8/oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:521)
at ojdbc8/oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:660)
at ojdbc8/oracle.net.ns.NSProtocol.connect(NSProtocol.java:287)
at ojdbc8/oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1481)
at ojdbc8/oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:540)
... 6 more
Caused by: java.io.IOException: Connection refused: connect, socket connect lapse 2040 ms. /0:0:0:0:0:0:0:1 1512 0 1 true
at ojdbc8/oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:229)
at ojdbc8/oracle.net.nt.ConnOption.connect(ConnOption.java:172)
at ojdbc8/oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:508)
... 11 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:574)
at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:784)
at java.base/java.nio.channels.SocketChannel.open(SocketChannel.java:224)
at ojdbc8/oracle.net.nt.TimeoutSocketChannel.connect(TimeoutSocketChannel.java:108)
at ojdbc8/oracle.net.nt.TimeoutSocketChannel.(TimeoutSocketChannel.java:86)
at ojdbc8/oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:188)
該当するソースコード
package oracleXEtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class start {
public static void main(String... args) {
String url = "jdbc:oracle:thin:@localhost:1512/SYSDBA";
String user = "sys";
String pass = "pass";
try (Connection con = DriverManager.getConnection(url, user, pass);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from table1");) {
while (rs.next()) {
System.out.println(rs.getInt("COLUMN1"));
}
// 登録実行
stmt.execute("insert into table1 values ('234' ");
ResultSet rs2 = stmt.executeQuery("select * from table1");
while (rs2.next()) {
System.out.println(rs2.getString("COLUMN1"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
自分で試したこと
OracleXE自体がSQLPlusで接続可能であること
Oracleの接続ツールDeveloperで接続可能であることを確認しました。
Javaの単純な接続のソースを記載しましたが接続エラーになり接続できません。
MyBatisのジェネレータの設定を行いSpringでビルドを行いましたがソースで接続をしようとした時と同じエラーが発生しました。