2017-01-08 10 views
0

私は簡単なアプリケーションを配備するためにAWSツールを使用しています。Amazon Webサービス - RDS設定

私はRDSインスタンス(Oracle)を持っており、動作しています。 (ローカル・コンピュータのSQL Developerからアクセスできます)

他の側では、私はjspで単純なアプリケーションをビルドしています。これはOracleインスタンスの表をループしています。画面。

な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サーバー(ローカルホスト)に配備されると、すべてがうまく動作し、値が画面に表示されています。

everything ok

しかし、一度このアプリは(Eclipse用AWSツールキットを使用して)E​​lastic Beanstalkでサービス上に展開され、Webページの読み込みのために時間がかかりすぎるし、最終的には何も(空白のページを)表示されません。実際には、エラーも表示されません。

nothing appears

私は行ずつをデバッグし、すべてがライン刚性うまくいけ:

Connection conn=ods.connect(); 

私は私のRDS Oracleインスタンスの設定に関連したものだと思います。確信はないけど。それはどのように構成されています。

mi aws rds Oracle instance

あなたはどんな考えを持っていますか?

多くのおかげ

+0

接続メソッドで非表示にしたサーバー名は、イメージのエンドポイントと同じですか?接続がタイムアウトするか、他のエラーが発生しますか?最初は、ファイアウォールの問題のように聞こえるが、JSPをホストするAWSインスタンスからアウトバウンドする必要があると考えられていましたか? –

+0

はい。サーバー名はイメージ内のエンドポイントと同じです。私が実行すると、エラーはなく、ちょうどaproxがかかります。 1分後に空白のページが表示されます。最後の質問に答えようとしています。私が理解しているように、私はユーザー、パス、ホスト、ポート、db名を与えるだけで、RDS Oracleインスタンスに接続できます..それは私のローカルコンピュータからデータベース(Apache Tomcatの使用) – Lev

答えて

1

あなたはRDSインスタンスとElastic Beanstalkでは、適切なセキュリティグループを持っていることを確認しましたか?解決

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.ec2.html#using-features.managing.ec2.securitygroups

+0

いいえ、私はそれを設定しました。それは今作動する!!ありがとうございました。 – Lev

+0

こんにちは、心配して、あなたがそれを理解してうれしい。また、RDSインスタンスの受信セキュリティグループを強化することもできます。 0.0.0.0/0の代わりに、Elastic Beanstalk設定のセキュリティグループを置くだけで済みます。 「s」と入力すると、AWSコンソールに自動的に選択肢が表示されます。 – grook5

0

セキュリティグループを構成する必要があります。

私のRDS Instaceは1つのインバウンドIPしか持っていませんでした(これは私のローカルコンピュータであり、なぜApache Tomcat Serverから働いたのですか)。すべてのIPを許可するには、0.0.0.0/0をipとして指定する必要があります。

:)

関連する問題