에러코드에 대해서 질문좀요^^;
바론
먼저 에러코드입니다...java.sql.SQLException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
The Connection descriptor used by the client was:
192.210.211.124:1521
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.init(PhysicalConnection.java:420)
at oracle.jdbc.driver.T4CConnection.init(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at login.Login.connect(Login.java:38)
at login.Login$2.mousePressed(Login.java:129)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread AWT-EventQueue-0 java.lang.NullPointerException
at login.Login.close(Login.java:47)
at login.Login$2.mousePressed(Login.java:156)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
-------------------------------------------------------------------------------------------------------------
이번엔 소스코드입니다^^;
package login;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.border.*;
import login.*;
public class Login extends JFrame implements ActionListener{
ImageIcon icon;
ImageIcon icon2;
ImageIcon icon3;
ImageIcon icon4;
ImageIcon icon5;
JPanel login, password, checkbox,buttonImage1, buttonImage2, buttonImage3;
JTextField logt;
JPasswordField passt;
JCheckBox check;
JButton button1, button2, button3;
String id,pw;
Connection conn = null;
PreparedStatement pstmt = null;
// 데이터베이스 연결관련정보를 문자열로 선언
String jdbc_driver = oracle.jdbc.driver.OracleDriver;
String jdbc_url = jdbc:oracle:thin:@192.210.211.124:1521;
// 데이터베이스 연결
public void connect() {
// JDBC 드라이버 로드
try {
Class.forName(jdbc_driver);
// 데이터베이스 연결정보를 이용해 Connection 인스턴스 확보
conn = DriverManager.getConnection(jdbc_url,jspb,1234);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void close() {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) tion e) {
e.printStackTrace();
}
}
public Login() {
JFrame main = new JFrame(Enterprise Messenger);
icon = new ImageIcon(C://dev/Tatoo/EnterpriseMessenger/login/Image/login_image1.jpg);
icon2 = new ImageIcon(C://dev/Tatoo/EnterpriseMessenger/login/Image/login_image2.jpg);
icon3 = new ImageIcon(C://dev/Tatoo/EnterpriseMessenger/login/Image/login_image3.jpg);
icon4 = new ImageIcon(C://dev/Tatoo/EnterpriseMessenger/login/Image/login_image4.jpg);
icon5 = new ImageIcon(C://dev/Tatoo/EnterpriseMessenger/login/Image/login_image5.jpg);
JPanel panel = new JPanel() {
public void paintComponent(Graphics g) {
g.setColor(Color.white);
g.fillRect(0,0,390,350);
//top layer 색상 및 위치 지정
Color top = new Color(245,255,240);
g.setColor(top);
g.fillRect(10, 5, 363, 20);
//middle layer 색상 및 위치 지정
Color middle = new Color(240,244,235);
g.setColor(middle);
g.fillRect(10, 50, 363, 170);
g.setColor(Color.white);
g.fillRect(10, 95, 363, 95);
//bottom layer 색상 및 위치 지정
Color bottom = new Color(245,255,240);
g.setColor(bottom);
g.fillRect(10, 225, 363, 20);
g.drawImage(icon.getImage(), 10, 30, null);
g.drawImage(icon2.getImage(), 15, 100, null);
setOpaque(false);
super.paintComponent(g);
}
};
// ID 입력 Panel
login = new JPanel();
login.add(new JLabel(User ID ));
login.add(logt = new JTextField(10));
login.setSize(230,40);
login.setBackground(Color.WHITE);
// Password 입력 Panel
password = new JPanel();
password.add(new JLabel(PassWord));
password.add(passt = new JPasswordField(10));
password.setSize(230,40);
password.setBackground(Color.WHITE);
// CheckBox Panel
checkbox = new JPanel();
check = new JCheckBox( User ID Save, false);
check.setBackground(Color.WHITE);
checkbox.add(check);
checkbox.setSize(120,50);
// Login Button Panel
buttonImage1 = new JPanel();
button1 = new JButton(icon3);
buttonImage1.add(button1);
button1.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent me){
connect();
InforMation i = new InforMation();
id=logt.getText();
String sql = select * from INFORMATION where in_id=?;
try{
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,id);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
i.setIn_id(rs.getString(in_id));
i.setIn_pw(rs.getString(in_pw));
i.setIn_buseo(rs.getString(in_buseo));
i.setIn_email(rs.getString(in_email));
i.setIn_gw(rs.getString(in_gw));
i.setIn_jumin(rs.umin(rs.getInt(in_jumin));
i.setIn_name(rs.getString(in_name));
i.setIn_tel(rs.getInt(in_tel));
i.setIn_add(rs.getString(in_add));
}
rs.close();
} catch (SQLException e) {
System.out.println(updateDb(): +e);
e.printStackTrace();
}finally{
close();
}
String gid = i.getIn_id();
String gpw = i.getIn_pw();
pw = passt.getText();
if(id.equals(gid)){
if(pw.equals(gpw)){
System.out.println(정상);
}
else{
System.out.println(패스워드 틀림);
}
}
else{
System.out.println(아이디 틀림);
}
}
});
buttonImage1.setSize(70,80);
buttonImage1.setBackground(Color.WHITE);
button1.setActionCommand(exit);
button1.setBorder(new BevelBorder(BevelBorder.RAISED));
button1.addActionListener(this);
//등록 Button Panel
buttonImage2 = new JPanel();
button2 = new JButton(icon4);
buttonImage2.add(button2);
Color bicon1 = new Color(240,244,235);
buttonImage2.setBackground(bicon1);
//button2.setActionCommand(exit);
button2.setBorder(new BevelBorder(BevelBorder.RAISED));
button2.addActionListener(new action1());
// 취소 Button Panel
buttonImage3 = new JPanel();
button3 = new JButton(icon5);
buttonImage3.add(button3);
buttonImage2.setBackground(bicon1);
//button3.setActionCommand(exit);
button3.setBorder(new BevelBorder(BevelBorder.RAISED));
button3.addActionListener(new action2());
// 각 Panel 위치 및 크기 지정
panel.setBounds(0,0,390,320);
login.setBounds(95,105,210,40);
password.setBounds(95,135,210,35);
checkbox.setBounds(180, 158, 100, 25);
buttonImage1.setBounds(310, 110, 53, 48);
buttonImage2.setBounds(275, 190, 40, 27);
buttonImage3.setBounds(320, 190, 40, 27);
// 각 Panel Frame 등록
main.setLayout(null);
main.getContentPane().add(login);
main.getContentPane().add(password);
main.getContentPane().add(checkbox);
main.getContentPane().add(buttonImage1);
main.getContentPane().add(buttonImage2);
main.getContentPane().add(buttonImage3);
main.getContentPane().add(panel);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main.setSize(390, 280);
main.setVisible(true);
}
public static void main(String[] args) {
Login frame = new Login();
}
public void actionPerformed(ActionEvent arg0) {
// TODO 자동 생성된 메소드 스텁
}
}
class action1 implements ActionListener{
public void actionPerformed(ActionEvent e){
IdOk newOk = new IdOk();
}
}
class action2 implements ActionListener{
// 취소 Button Action method
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
실행을 시키면 창은 제대로 뜨는데 버튼을 누르면 아무문제가 없으면서 콘솔창에 에러가 뜹니다..
아는사람이 그러는데 오라클 서버에 접속못해서 그런것 같다는데 왜그런걸까요??ㅠ.ㅠ
-
해까닥
저도 자세히는 모르겠지만
conn = DriverManager.getConnection(jdbc_url,\jspb\