【问题标题】:Can't connect to MSSQL DB through Apache Tomcat无法通过 Apache Tomcat 连接到 MSSQL DB
【发布时间】:2017-03-25 08:37:56
【问题描述】:

我正在尝试设置Geoportal 1.2.7,在Apache Tomcat 8.5.6MSSQL Server 2012, JDK 8, and jdbc 4 上运行。我可以登录到 Geoportal,但是当我进入管理选项卡时,我得到了错误

“发生数据库通信错误”

检查 Apache 日志文件,我发现有一个严重错误

java.sql.SQLException: 无法创建 PoolableConnectionFactory (The 端口号 1433:地理门户无效。)

我在 jdbc 的配置中尝试了一系列不同的条目,但它总是回到那个错误。

<Context docBase="geoportal" path="/geoportal" debug="0" reloadable="true" crossContext="true">
    <Resources
         cachingAllowed="true"
         cacheMaxSize="100000"
     />
    <Resource name="jdbc/gpt" auth="Container" type="javax.sql.DataSource"
              driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
              url="jdbc:sqlserver://SQLDEMOSERVER:1433:geoportal"
              user="******"
              password="*******"  
              maxTotal="20"
              maxIdle="10"
              maxWaitMillis="-1" />
</Context>

这只是我最近的尝试。我在网上看到了关于网址应该是什么样子的相互矛盾的帖子。

我试过url="jdbc:sqlserver://SQLDEMOSERVER:1433;databaseName=geoportal" (Geoportal won't launch), url="jdbc:sqlserver://SQLDEMOSERVER:1433/databaseName=geoportal" (Then I get the port error), url="jdbc:sqlserver://SQLDEMOSERVER:1433" (Geoportal won't load).

我已经束手无策了。我仔细检查了其余的配置文件,其中的编辑很少,可能对错误没有影响。

如果有人能指出我的错误,将不胜感激。

【问题讨论】:

  • 请检查documentation 以获取正确的 URL 格式。请注意,根据配置,端口 1433 可能不正确。还要确保区分数据库的实例名称(如果有)和该实例上的数据库名称。
  • 我在使用 postgres 数据库时遇到问题。有关如何解决此问题的任何帮助?

标签: java sql-server apache tomcat jdbc


【解决方案1】:

试试

url="jdbc:sqlserver://SQLDEMOSERVER:1433/geoportal

【讨论】:

  • 不幸的是,这在“管理”选项卡以及日志文件上给了我同样的错误。
  • 数据库在运行吗?
  • 是的,SQL 数据库正在运行。我确保 TCP/IP 协议也处于活动状态。我还在 Esri 网站上仔细检查了所有有问题的软件之间的兼容性。
  • SQLDEMOSERVER 是主机名吗? Esri 文档说要在端口 5432 上使用 postgre sql。您是否在设置数据库之前更改了端口?
  • 我正在尝试让它与 MS SQL 一起使用。它适用于 PostgreSQL,但客户端运行的是 MS SQL 服务器。
【解决方案2】:

这些 URL 在 SQL Server 2012 上适用于我:

jdbc:sqlserver://localhost:1433;databaseName=test
jdbc:sqlserver://localhost:1433;database=test

这对我在 SQL Server 2012 中不起作用,但可能适用于旧版本:

jdbc:sqlserver://localhost:1433/test

这些根本不起作用:

jdbc:sqlserver://localhost:1433/databaseName=test
jdbc:sqlserver://localhost:1433:test

我想问题出在其他地方(更详细地调查“不会启动”问题)。

【讨论】:

  • 感谢您的意见,我会看看其余的应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2016-06-10
相关资源
最近更新 更多