当前位置: 首页 > 面试题库 >

Tomcat JDBC连接可在Eclipse中运行,但不能独立运行

唐彬炳
2023-03-14
问题内容

我们正在经历升级数据库软件的过程,还将从Tomcat 5.5升级到Tomcat7。结果,我使用的是新的JDBC驱动程序,在本例中为推荐的SQL
Anywhere JDBC 4.0驱动程序,它需要ODBC服务。

我将其全部用于Eclipse方面取得了巨大的成功。但是奇怪的是,当我尝试在Eclipse之外运行Tomcat时,出现以下错误:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory
([Sybase][JDBC Driver][SQL Anywhere]Database server not found)

可以
得到一个纯Java驱动程序(jConnect)在这两种环境中运行,因此我认为ODBC可能在这里发挥了作用。但是,jConnect非常过时,并且存在其他一些问题,因此我不想使用它。

这是Web应用程序下我的META-INF子目录中的context.xml代码段:

<Context docBase="web" path="/web" reloadable="false">
  <!-- Access to the database -->
  <Resource auth="Container" 
    description="Pooled connection to the web database" 
    maxActive="30" maxIdle="5" maxWait="10000" name="jdbc/web" 
    removeAbandoned="true" 
    removeAbandonedTimeout="60" 
    driverClassName="sybase.jdbc4.sqlanywhere.IDriver"
    type="javax.sql.DataSource" 
    url="jdbc:sqlanywhere:DSN=testweb" />
</Context>

相关的jar文件sajdbc4.jar位于$ {TOMCAT_HOME} / lib中。我还尝试将其添加到系统类路径中,这没有什么区别。

Eclipse服务器正在使用其自己的元空间数据,但是我看到的唯一显着差异是在Host标记内的server.xml中添加了以下行:

<Context docBase="web" path="/web" reloadable="true" 
source="org.eclipse.jst.jee.server:web"/>

我尝试将此行添加到我的独立安装中,并且Tomcat拒绝了。我还尝试添加它减去Eclipse特定的source属性,但是它什么也没做。

我在Windows
7上运行,并尝试关闭防火墙以防万一。似乎并非如此。ODBC源是系统DSN,并且所有人都应该可以访问。当我给Tomcat输入一个假的DSN名称进行测试时,它告诉我找不到它(另一条错误消息)。

在这一点上,我已经花了很长的时间,完全不知所措。我宁愿不通过Java代码来建立数据库,尤其是因为它在Eclipse中可以正常工作,但是生产将成为一个独立的环境。


问题答案:

我找到了一个解决方案,希望它可以为其他人省去一些麻烦。

必须告诉SQL Anywhere JDBC驱动程序显式使用TCP / IP协议。您也不需要通过ODBC。我将数据库服务器作为独立进程运行,广播了服务器名称“
testweb”。然后,在资源定义中使用以下连接字符串:

url="jdbc:sqlanywhere:Server=testweb;UID=xxx;PASSWORD=xxx;port=2638;LINKS=tcpip(PORT=2638)"

这就是窍门。



 类似资料:
  • 问题内容: 早上好!最近,我买了一个Arduino开发板来对房间进行“灯光控制”。这是我编写的固件代码: 之后,我使用了Python解释器中的pySerial来控制引脚,一切工作正常。这是一段解释器输出: 然后,我决定编写一个简单的Python脚本来执行相同的操作: 但这根本不起作用!Arduino显示在我启动脚本的过程中收到了一些东西,但是什么也没发生。这是脚本的strace输出: 看起来一切都

  • 我正在尝试将我的程序导出为一个可运行的JAR。该程序在eclipse中工作得非常好,但它不能作为一个可运行的JAR运行。我正在使用另外3个jar文件作为引用jar,这样我就可以使用音频,我认为这可能是问题所在。可运行的jar启动,但它只是一个全白的窗口,程序没有启动。 我点击我的项目,然后右键点击并选择“导出”,然后我选择“可运行的JAR”选项。我尝试使用所有三个处理引用库的选项来创建jar。 将

  • 我正在尝试执行这个代码是pycharm 但我总是犯这个错误 但我可以使用terminal运行相同的代码

  • 安装Spark独立模式集群 安装Spark独立模式,你只需要将Spark的编译版本简单的放到集群的每个节点。你可以获得每个稳定版本的预编译版本,也可以自己编译。 手动启动集群 你能够通过下面的方式启动独立的master服务器。 ./sbin/start-master.sh 一旦启动,master将会为自己打印出spark://HOST:PORT URL,你能够用它连接到workers或者作为"m

  • 我正在尝试在Ubuntu上以独立的方式运行Apache地图集 - 这意味着不必设置Solr和/或HBase。我所做的(根据文档:http://atlas.apache.org/0.8.1/InstallationSteps.html)是克隆Git存储库,使用mbadded的HBase和dSolr构建maven项目: 解压缩了 resuting tar.gz 文件并执行了 bin/atlas_sta

  • 我对龙目岛或月食有问题,不确定是哪一个。我有一个Spring Boot maven项目,我正在使用Lombok。我在pom中添加了这个。xml文件,我使用了用于eclipse的lombok安装。 发生的事情是,我可以对项目进行和以及maven更新,一切都按预期构建。一旦我去运行项目,错误就开始出现,我得到错误,例如: 在运行项目时,有什么事情可以让龙目岛脱颖而出吗?! 我正在运行Eclipse O