Для JDBC в XPages, как сервер узнает информацию о соединении? - PullRequest
0 голосов
/ 02 апреля 2012

Хорошо, я попросил одного из наших ребят из JAVA / JDBC взглянуть на мою проблему с JDBC, описанную в http://stackoverflow.com/questions/9787525/jdbc-ordeal-it-shouldnt-be-that-difficult-partial-solved-new-errors Кажется, что если я поставлю ojdbc14 в качестве ConnectionName, я получу эту ошибку:

Error while reading the relational data
Error while loading connection ojdbc14
Error parsing XML stream
InputStream cannot be null

Но если я добавлю ojdbc14.jdbc в качестве ConnectionName, я получу эту ошибку:

Error while reading the relational data
comp/env/jdbc/ojdbc14.jdbc

Кажется, он думает, что следует использовать вторую версию, но на сервере отсутствует какая-либо конфигурация, например, имя JNDI или что-то в этом роде.

Мне нужен кто-то, чтобы подтвердить, что один или другой из них является правильным форматом и что именно нужно сделать со стороны сервера, чтобы он нашел информацию о соединении.

Любая помощь будет оценена.

MJ

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

См. http://www.openntf.org/internal/home.nsf/response.xsp?action=openDocument&documentId=7888655D70FDDD6186257930002E1D3F&MainID=D861DE698262EDDA86257930002AEE52 для примера, как подключиться к MS SQL. Это может дать вам некоторые идеи, поскольку JDBC более или менее одинаков для любой RDBMS. Смотрите пункт 1. Недостаточно поместить папку .jar в плагины. Это должен быть плагин.

См. http://www -10.lotus.com / ldd / ddwiki.nsf / dx / creation_an_xpages_library для получения инструкций по созданию плагина.

Обновление Я попробовал это с нуля с движком базы данных H2. Следующие работы:

1) Я импортировал драйвер JDBC в WebContent / WEB-INF / lib

2) Я создал WebContent / WEB-INF / jdbc / h2.jdbc со следующим содержимым

<jdbc>
    <driver>org.h2.Driver</driver>
    <url>jdbc:h2:tcp://localhost/~/test</url>
    <user>SA</user>
    <password></password>
</jdbc>

3) Создать простую страницу X со следующим содержанием. Я выделил жирным шрифтом часть, где указано соединение, определенное в (2).

<xp:viewPanel rows="10" id="viewPanel1" var="user">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xe:jdbcQuery connectionName="h2" sqlQuery="select * from test"
            var="jdbcData1" defaultOrderBy="id">
        </xe:jdbcQuery>
    </xp:this.data>
    <xp:viewColumn id="viewColumn1" columnName="id">
        <xp:this.facets>
            <xp:viewColumnHeader xp:key="header" id="viewColumnHeader1"
                value="ID" sortable="true">
            </xp:viewColumnHeader>
        </xp:this.facets>
    </xp:viewColumn>
    <xp:viewColumn id="viewColumn2" columnName="name">
        <xp:this.facets>
            <xp:viewColumnHeader xp:key="header" id="viewColumnHeader2"
                value="NAME" sortable="true">
            </xp:viewColumnHeader>
        </xp:this.facets>
    </xp:viewColumn>
</xp:viewPanel>

Попробуем воспроизвести его позже в Oracle 11g Express Edition.

ОБНОВЛЕНИЕ № 2

Для Oracle 11 XE Release 2 он работает точно так же, только с одним исключением. Я должен был следовать http://www -01.ibm.com / support / docview.wss? Uid = swg21279509 , чтобы предоставить следующие права:

grant {
    permission java.lang.RuntimePermission "getClassLoader";
}

Кроме того, я использовал ojdbc6.jar, как рекомендовано в документации Oracle, в связи с тем, что Domino 8.5.3 использует Java 6. Конечно, мое первоначальное утверждение о добавлении драйвера JDBC Oracle в Domino в виде плагина, так как это позволит вам использовать его в каждом приложении XPages.

0 голосов
/ 02 апреля 2012

MJ

Я только что нашел этот пост. Добавив расширение .jdbc, мы, похоже, обошли ошибку парсера DOM. Ваш XML теперь не вызывает исключение, а простое размещение ojdbc14.jar на сервере Domino не создаст имя JNDI на этом сервере. Он просто поместит байт-код Java на тот сервер, который потребуется для соединений Oracle - часть кода, но не конфигурация.

Файл ojdbc14.jdbc содержит всю информацию, которая понадобится серверу для создания имени поиска JNDI, но подробности его регистрации на сервере, как вы упомянули, - это то, что я пока не могу найти в инструкциях.

...