Я прокладываю себе путь через Поваренную книгу по разработке приложений для лифтов от Gilberto T. Garcia Jr и столкнулся с проблемой, которую я не могу как представляется, решить. Я скопировал исходный код Chap06-map-table, и я пытаюсь изменить его для работы с моей базой данных IBM i (iSeries, AS/400, i5). Мне удалось заставить его работать с первым типом подключения, используя Squeryl Record. Тем не менее, я не могу представить, как это можно использовать с использованием источника данных JNDI. Я потратил пару дней на поиск в Интернете примеров настройки и не нашел хорошего примера, связанного с подключением базы данных DB/400. Ниже приведена ошибка, которую я получаю, когда пытаюсь запустить контейнер и код, который я модифицировал, чтобы заставить его работать. Любая помощь будет оценена по достоинству. Благодарю. БобКак настроить подключение JNDI Datasource к базе данных IBM i DB/400 от Lift
Это ошибка:
> container:start
[info] jetty-8.0.4.v20111024
[warn] Config error at <New id="dsliftbook" class="org.eclipse.jetty.plus.jndi.R
esource"><Arg/><Arg>jdbc/dsliftbook</Arg><Arg>
[warn] <New class="class com.ibm.as400.access.AS400JDBCConnectionPoolDataS
ource"><Set name="Url">"jdbc:as400://www.server.com/play2test;naming=system;erro
rs=full"</Set><Set name="User">user</Set><Set name="Password">password</Set></New>
[warn] </Arg></New>java.lang.ClassNotFoundException: class com.ibm.as400.acce
ss.AS400JDBCConnectionPoolDataSource
[warn] Failed startup of context o.e.j.w.WebAppContext{/,[file:/C:/Users/user/Lif
t26Projects/scala_210/chap06-map-table/src/main/webapp/]}
[info] Started [email protected]:8080 STARTING
[success] Total time: 0 s, completed Dec 15, 2013 12:21:59 AM
>
Это модифицированный файл Пристань-ENV-XML:
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty
/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<New id="dsliftbook" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>jdbc/dsliftbook</Arg>
<Arg>
<New class="class com.ibm.as400.access.AS400JDBCConnectionPoolDataSource">
<Set name="Url">"jdbc:as400://www.server.com/play2test;naming=system;errors=full"
</Set>
<Set name="User">user</Set>
<Set name="Password">password</Set>
</New>
</Arg>
</New>
</Configure>
И это модифицированный файл build.sbt:
libraryDependencies ++= {
val liftVersion = "2.5"
Seq(
"net.liftweb" %% "lift-webkit" % liftVersion % "compile",
"net.liftmodules" %% "lift-jquery-module_2.5" % "2.3",
"org.eclipse.jetty" % "jetty-webapp" % "8.0.4.v20111024" % "container",
"org.eclipse.jetty" % "jetty-plus" % "8.0.4.v20111024" % "container",
"ch.qos.logback" % "logback-classic" % "1.0.6",
"org.specs2" %% "specs2" % "1.14" % "test",
"net.liftweb" %% "lift-squeryl-record" % liftVersion % "compile",
"net.sf.jt400" % "jt400" % "6.7",
"org.liquibase" % "liquibase-maven-plugin" % "3.0.2"
)
}
Я удалил дополнительный «класс» и изменил на , на и < Задайте имя = «Пароль»><Установить имя = «пароль»>. Теперь я получаю подсказку для пользователя и пароля (хотя я думаю, что я их поставляю), но теперь получаю новую ошибку, что он не может установить соединение. Итак, я изучаю это. Ваша заявка может не работать должным образом java.sql.SQLException: реквестер приложений не может установить соединение . («jdbc: as400: // server; ...» com.ibm.as400.access.JDError.throwSQLException (JDError.java:524) ~ [jt 400-6.7.jar: JTOpen 6.7] –