`
lxs647
  • 浏览: 524370 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

配置了derby数据库后启动tomcat 服务报错

阅读更多

在本应用中由于是以derby数据库作为数据存储,采用网络连接方式连接derby,在启动tomcat 服务是进行一些数据库的初始化工作,比如创建表之类的。

所以就特地创建了一个servlet 去做这些初始化工作。

在web.xml中配置如下:

<web-app>

...

<servlet>

        <servlet-name>derbynet</servlet-name>

        <servlet-class>org.apache.derby.drda.NetServlet</servlet-class>

        <init-param>

            <param-name>startNetworkServerOnInit</param-name>

            <param-value>true</param-value>

            <description>Starts the Network Server at servlet

                    initialization if 'true'. </description>

        </init-param>

        <init-param>

            <param-name>portNumber</param-name>

            <param-value>1527</param-value>

            <description>Port number to use. The default is 1527.</description>

        </init-param>

        <init-param>

            <param-name>host</param-name>

            <param-value>localhost</param-value>

            <description> Host Name to use. The default is "localhost". Please secure any server which listens on a public address. </description>

        </init-param>

        <init-param>

            <param-name>tracingDirectory</param-name>

            <param-value />

            <description>Directory where trace files should be placed. </description>

        </init-param>

        <load-on-startup>true</load-on-startup>

    </servlet>

 

    <servlet>

        <servlet-name>InitializeDatabase</servlet-name>

        <servlet-class>com.sap.pf.prp.servlet.InitializeDatabase</servlet-class>

        <load-on-startup>0</load-on-startup>

    </servlet>

...

</web-app>

 

一切妥当之后,在eclipse下启动tomcat 服务,一切正常。

但是当我启动tomcat目录下的startup.bat时,就报错了,信息如下:

 

java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error c

onnecting to server localhost on port 1527 with message Connection refused: conn

ect.

        at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unkn

own Source)

        at org.apache.derby.client.am.SqlException.getSQLException(Unknown Sourc

e)

        at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)

        at java.sql.DriverManager.getConnection(DriverManager.java:582)

        at java.sql.DriverManager.getConnection(DriverManager.java:185)

        at com.sap.pf.prp.db.DBManager.getConnection(DBManager.java:56)

        at com.sap.pf.prp.db.DBManager.initDB(DBManager.java:27)

        at com.sap.pf.prp.servlet.InitializeDatabase.init(InitializeDatabase.jav

a:13)

        at javax.servlet.GenericServlet.init(GenericServlet.java:212)

        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.

java:1139)

        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:96

6)

        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex

t.java:3956)

        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4

230)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

 

        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

 

        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443

)

        at org.apache.catalina.core.StandardService.start(StandardService.java:4

48)

        at org.apache.catalina.core.StandardServer.start(StandardServer.java:700

)

        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectExcep

tion : Error connecting to server localhost on port 1527 with message Connection

 refused: connect.

        at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)

        at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)

        at org.apache.derby.client.am.Connection.<init>(Unknown Source)

        at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)

        at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)

        at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConne

ction(Unknown Source)

        ... 24 more

Caused by: java.net.ConnectException: Connection refused: connect

        at java.net.PlainSocketImpl.socketConnect(Native Method)

        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)

        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)

        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)

        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

        at java.net.Socket.connect(Socket.java:529)

        at java.net.Socket.connect(Socket.java:478)

        at java.net.Socket.<init>(Socket.java:375)

        at java.net.Socket.<init>(Socket.java:189)

        at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:206)

        at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)

        at java.security.AccessController.doPrivileged(Native Method)

        ... 30 more

Feb 11, 2015 1:34:10 PM org.apache.coyote.http11.Http11BaseProtocol start

INFO: Starting Coyote HTTP/1.1 on http-80

 

在网上搜了好一阵子,都没有找到真正的解决办法。

https://db.apache.org/derby/docs/10.4/adminguide/tadmincbdjhhfd.html

http://db.apache.org/derby/papers/DerbyTut/ns_intro.html

http://stackoverflow.com/questions/10420902/data-sources-derby-connection-refused

 

最后经过仔细的排查,发现其实是我自己的web.xml配置中【servlet启动优先级设置】的问题。

只需要将derbynet中:

<load-on-startup>true</load-on-startup> =====> <load-on-startup>0</load-on-startup>

 

再将初始化数据库的那个servlet的load-on-startup 改为1 即:

<load-on-startup>0</load-on-startup> ====> <load-on-startup>1</load-on-startup>

 

改完了之后重新发布启动tomcat,一切正常。

分享到:
评论

相关推荐

    连接derby数据库方法—附图

    Tomcat连接池可以通过JNDI来配置数据库连接信息。在Tomcat的配置文件中,添加以下配置信息: ``` type="javax.sql.DataSource" username="your_username" password="your_password" driverClassName="org....

    derby数据库以及在MyEclipse中的配置

    上网页也可以找到一些资源关于derby数据库的安装配置,但是你看起来会很麻烦,而且比较难以上手。 这是我自己动手实践过的,里面有很多截图方便你理解安装过程,已经电脑上面环境变量的配置,在MyEclipse上面的...

    derby.zip,Derby数据库

    Derby数据库完整压缩包,解压缩即可使用,bat文件在bin文件目录下,驱动程序在lib目录下。 Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。...

    derby数据库转sql、db2等其他数据库的简易工具

    4. **执行转换**:输入正确的命令后,工具将开始读取Derby数据库中的表结构和数据,并生成相应的SQL脚本。这个过程中,可能会有选项来决定是否包含索引、触发器、存储过程等复杂对象。 5. **审查和导入SQL脚本**:...

    Derby数据库初级使用文档

    本文档将详细介绍Derby数据库的初级使用,包括安装、启动、创建数据库、设置用户以及连接数据库的步骤。 1. **Derby数据库版本**: 版本为db-derby-10.8.2.2,可以在官方下载地址...

    derby 数据库 eclipse插件

    Derby数据库Eclipse插件是开发人员在Eclipse集成开发环境中使用Apache Derby数据库时的一种便捷工具。Apache Derby,也称为JavaDB,是一个开源的关系型数据库管理系统,完全用Java编写,支持ACID事务、SQL标准以及多...

    derby数据库

    Apache提供了几种不同类型的Derby发行版,例如bin发行版,包含数据库工具、配置脚本、示例、API文档和库文件。安装Derby只需下载并解压缩对应的zip或tar包。配置Derby环境涉及设置`DERBY_HOME`环境变量,将`bin`目录...

    derby 数据库开发文档

    ### Apache Derby 数据库开发文档概览 #### 一、Apache Derby 概述 Apache Derby 是一款高质量、纯 Java 的嵌入式关系型数据库引擎。它最初由 IBM 开发并捐赠给开源社区。Derby 数据库的特点在于其轻量级、易于...

    内嵌数据库derby 10.6.2开发文档

    - **批处理文件和Shell脚本**:提供了用于启动和停止数据库服务的批处理文件和Shell脚本,简化了操作流程。 - **JVM兼容性**:Derby支持多种JVM版本,确保了跨平台的灵活性和兼容性。 - **类路径设置**:明确指出...

    derby数据库的简单操作

    Derby提供了一个网络服务器模式,可以通过执行`bin/startNetworkServer.bat`来启动该服务。 如果需要指定IP地址,则可以使用`NetworkServerControl`工具并指定主机IP。例如: ```bash bin(NetworkServerControl ...

    derby embedded模式设置用户名和密码

    前面讲的配置 derby.properties 文件是为 Derby 嵌入式数据库配置系统设置。这种方法可以实现对某一个数据库的用户验证。 1. 连接到数据库,运行以下语句: CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby....

    derby 数据库驱动jar包

    derby 数据库驱动jar包, 更多其他数据库驱动jar包(包括db2,derby,exasol,h2,jtds,mimer,mysql,nuodb,oracle,postgresql,redshift,sqlite,vertica)请看楼主其他资源贴

    derby10.10.1.1数据库

    1. **bin** 目录:这个目录下的可执行文件(.bat脚本)用于启动和管理Derby数据库,例如`ij`命令行工具,可以用来执行SQL查询,以及`startNetworkServer`和`stopNetworkServer`脚本,分别用于启动和停止Derby的网络...

    derby 数据库 使用的例子

    1. **安装与配置**:Derby数据库可以作为Java类库嵌入到Java应用中,无需独立服务器。只需将derby.jar和derbyclient.jar添加到项目的类路径中即可开始使用。 2. **连接数据库**:使用JDBC(Java Database ...

    derby数据库[文].pdf

    在Apache官网上,Derby提供了多种发布包,如bin包,包含了运行Derby数据库所需的工具、配置脚本、示例程序、jar文件等。 **安装Derby数据库**: 1. 从Derby官方网站下载对应的zip或tar包,解压缩即可。 2. 解压后的...

Global site tag (gtag.js) - Google Analytics