如何从Lift设置到ibmidb/400数据库的jettyjndi数据源连接
我正在阅读Gilberto T.Garcia Jr的Lift应用程序开发食谱,遇到了一个我似乎无法解决的问题。我已经复制了源代码Chap06映射表,并试图对其进行修改,以使用我的IBMi(iSeries,AS/400,i5)数据库。我能够使它与第一种类型的连接使用Squeryl记录工作。然而,我似乎不知道如何使用JNDI数据源实现这一点。我花了几天的时间在互联网上搜索设置这个的例子,但没有找到一个涉及DB/400数据库连接的好例子。下面是我在尝试启动容器和为使其正常工作而修改的代码时遇到的错误。 任何帮助都将不胜感激。谢谢鲍勃 这就是错误:如何从Lift设置到ibmidb/400数据库的jettyjndi数据源连接,jetty,lift,db2-400,Jetty,Lift,Db2 400,我正在阅读Gilberto T.Garcia Jr的Lift应用程序开发食谱,遇到了一个我似乎无法解决的问题。我已经复制了源代码Chap06映射表,并试图对其进行修改,以使用我的IBMi(iSeries,AS/400,i5)数据库。我能够使它与第一种类型的连接使用Squeryl记录工作。然而,我似乎不知道如何使用JNDI数据源实现这一点。我花了几天的时间在互联网上搜索设置这个的例子,但没有找到一个涉及DB/400数据库连接的好例子。下面是我在尝试启动容器和为使其正常工作而修改的代码时遇到的错误。
> 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 SelectChannelConnector@0.0.0.0:8080 STARTING
[success] Total time: 0 s, completed Dec 15, 2013 12:21:59 AM
>
定义资源时,属性
class=“class com.ibm.as400.access.AS400JDBCConnectionPoolDataSource”
不正确。您不需要在完全限定的类名前面加上单词class
。它应该是class=“com.ibm.as400.access.as400jdbconnectionpooldatasource”
。修复这个问题,只要包含com.ibm.as400.access.AS400JDBCConnectionPoolDataSource的jar位于类路径上(它是由jt400提供的吗?),您就应该可以了。我删除了额外的“类”,并将其改为、改为和。现在我得到了输入用户和密码的提示(尽管我认为我正在提供它们),但现在出现了新的错误,即它无法建立连接。所以,我正在研究。您的应用程序可能无法正常运行java.sql.SQLException:应用程序请求者无法建立连接。(“jdbc:as400://server;…”com.ibm.as400.access.jderro.throwSQLException(jderro.java:524)~[jt 400-6.7.jar:JTOpen 6.7]
<!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>
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"
)
}