Соединение с базой данных указывает на неверную базу данных - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть веб-проект в затмении с использованием Glassfish.У меня есть следующие записи источника данных в context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/TestDS" type="javax.sql.DataSource"
        url="jdbc:oracle:thin:@server:1521:db1"
        driverClassName="oracle.jdbc.OracleDriver" username="test" password="test" />
</Context>

Когда я запускаю свое приложение

DatabaseMetaData dmd = connection.getMetaData();
 String name = dmd.getDatabaseProductName();

Имя продукта базы данных всегда Apache Derby

Что может бытьпричина этому?Я пытаюсь подключиться к базе данных Oracle, однако соединение установлено с Apache Derby.

Как мне решить эту проблему?

Спасибо

Обновление 1

public static DatabaseConnection getInstance(String name)
            throws DatabaseException {

        DatabaseConnection instance;
        DataSource ds;
        try {
            InitialContext ctx = new InitialContext();
            ds = (DataSource) new InitialContext().lookup("java:comp/env/"
                    + name);


        } catch (NamingException e) {
            e.printStackTrace();
            throw new DatabaseException("###data source is invalid ###" + e);

        }
        instance = new MYDataSource(ds);

        return instance;
    }

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Я решил эту проблему.

Я создал JDBC-ресурс в GlassFish и указал соединение с моим соединением, созданным в Date Source Explorer. Он создал sun-resources.xml. Мне пришлось вручную переименовать это в glassfish-resource.xml. По умолчанию здесь нет ввода пароля, поэтому мне пришлось вручную добавить <property name="Passwrod" value="password" />. Когда я запускал свое веб-приложение, я получал эту ошибку

java.sql.SQLException: Error in allocating a connection. Cause: No PasswordCredential found

Поэтому, чтобы устранить эту ошибку, я добавил свойство в пул соединений JDBC на административном сервере glassfish. Теперь я могу подключиться к базе данных Oracle.

Не уверен, почему я должен сделать два шага вручную.

Спасибо

0 голосов
/ 24 февраля 2012

кажется, что вы смешиваете некоторые вещи здесь.context.xml, очевидно, является файлом конфигурации Apache Tomcat.В GlassFish вам нужно либо использовать glassfish-resources.xml, либо настроить свой домен напрямую через интерфейс администратора или domain.xml.Вот основной пример того, как сделать это с помощью GlassFish 3.1 в документации GlassFish: http://docs.oracle.com/cd/E18930_01/html/821-2416/ggndx.html

Веселитесь!Markus

...