Я использую инструменты AWS для развертывания простого приложения.Веб-службы Amazon - Конфигурация RDS
У меня есть экземпляр RDS (Oracle), и он работает. (Я могу получить к нему доступ из SQL Developer на моем локальном компьютере)
С другой стороны, я создал в Eclipse простое приложение в jsp, которое перебирает таблицу в моем экземпляре Oracle (выше metioned) и показывает значения в экран.
test.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="dbconnection.DataSource"%>
<%@page import="java.sql.*"%>
<%@page import="oracle.jdbc.pool.OracleDataSource"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Tercera Prueba</title>
</head>
<body>
<%
DataSource ods = new DataSource();
Connection conn=ods.connect();
out.println (ods.getUserName(conn));
// Close the connection
conn.close();
conn = null;
%>
</body>
</html>
DataSource.java
import oracle.jdbc.pool.OracleDataSource;
public class DataSource
{
public String getUserName(Connection conn)
throws SQLException
{
// Create a Statement
Statement stmt = conn.createStatement();
String str="";
// Select the ENAME column from the EMP table
ResultSet rset = stmt.executeQuery ("select USER from dual");
// Iterate through the result and print the employee names
while (rset.next())
str= "User name is " + rset.getString (1);
// Close the RseultSet
rset.close();
rset = null;
// Close the Statement
stmt.close();
stmt = null;
return (str);
}
public Connection connect() throws SQLException{
// Create a OracleDataSource instance explicitly
OracleDataSource ods = new OracleDataSource();
// Set the user name, password, driver type and network protocol
ods.setDriverType("thin");
ods.setServerName("xxxxxx");
ods.setDatabaseName("oracledb");
ods.setPortNumber(1521);
ods.setUser("xxxxxx");
ods.setPassword("xxxxxxx");
Connection conn = ods.getConnection();
return (conn);
}
}
После этого приложение развертывается в сервере Apache Tomcat (LOCALHOST), все работает нормально, и значение отображается на экране.
Однако, как только это приложение развертывается через сервис Elastic Beanstalk (используя AWS инструментарий для Eclipse), веб-страница занимает слишком много времени для загрузки, и, наконец, не появляется ничего (страницы в пустой). На самом деле, он также не показывает ошибок.
Я построчно отладки, и все идет хорошо до тех пор пока линия:
Connection conn=ods.connect();
Я думаю, что это что-то связанное с конфигурацией моего экземпляра RDS Oracle. но я не уверен. это то, как он настроен.
У вас есть какие-либо идеи?
Большое спасибо
Является ли имя сервера, которое вы скрывали в методе подключения так же, как конечная точка на вашем изображении? Происходит ли попытка подключения отключиться или получить другую ошибку? Первая мысль заключается в том, что это звучит как проблема с брандмауэром, но должна ли она быть исходящей от экземпляра AWS, на котором размещен JSP? –
Да. имя сервера совпадает с конечной точкой на изображении. Когда я выполняю, ошибок нет, просто принимает aprox. 1 минута, а затем показывает пустую страницу. и пытаюсь ответить на ваш последний вопрос, да, как я понимаю, я могу подключиться к экземпляру RDS Oracle, просто предоставив имя пользователя, пароля, хоста, порта, db. Это то, что я сделал для подключения с моего локального компьютера к database (usiing Apache Tomcat) – Lev