之前由于一直在Windows服务器下进行操作,部署环境、开启应用及代码调试,Tomcat的配置文件server.xml都是以Windows系统下的配置为准,但是当把Tomcat部署到应用服务上时,设置server.xml的context时,开启Tomcat出现异常。
Windows下Tomact的server.xml配置文件中的context设置:
<Context docBase="aaa" path="/aaa" reloadable="true" source="org.eclipse.jst.jee.server:aaa">
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" initialSize="10" logAbandoned="true" maxActive="10" maxIdle="5" minEvictableIdleTimeMillis="60000" minIdle="10" name="masterDataSource" password="password" suspectTimeout="60" timeBetweenEvictionRunsMillis="30000" type="javax.sql.DataSource" url="jdbc:mysql://<mysql_ip>:<mysql_port>/<database>?characterEncoding=UTF-8" username="user" validationInterval="30000" validationQuery="select 1 from dual"/>
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" initialSize="10" logAbandoned="true" maxActive="10" maxIdle="5" minEvictableIdleTimeMillis="60000" minIdle="10" name="slaveDataSource1" password="password" suspectTimeout="60" timeBetweenEvictionRunsMillis="30000" type="javax.sql.DataSource" url="jdbc:mysql://<mysql_ip>:<mysql_port>/<database>?characterEncoding=UTF-8" username="user" validationInterval="30000" validationQuery="select 1 from dual"/>
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" initialSize="10" logAbandoned="true" maxActive="10" maxIdle="5" minEvictableIdleTimeMillis="60000" minIdle="10" name="slaveDataSource2" password="password" suspectTimeout="60" timeBetweenEvictionRunsMillis="30000" type="javax.sql.DataSource" url="jdbc:mysql://<mysql_ip><myysql_port>/<database>?characterEncoding=UTF-8" username="user" validationInterval="30000" validationQuery="select 1 from dual"/>
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" initialSize="10" logAbandoned="true" maxActive="10" maxIdle="5" minEvictableIdleTimeMillis="60000" minIdle="10" name="slaveDataSource3" password="password" suspectTimeout="60" timeBetweenEvictionRunsMillis="30000" type="javax.sql.DataSource" url="jdbc:mysql://<mysql_ip><mysql_port>/<database>?characterEncoding=UTF-8" username="user" validationInterval="30000" validationQuery="select 1 from dual"/>
</Context>
配置中的<mysql_ip>代表数据库ip,<msyql_port>代表数据库端口,<database>代表需要连接的数据库名称。
将其配置到Linux下的Tomcat中时,启动报错:
观察配置文件,发现有一行配置, source="org.eclipse.jst.jee.server:aaa",此配置是为了在Windows服务器下对代码进行调试而安装eclipse,并在eclipse上进行Tomcat的服务开启,Linux下并没有这个环境,所以,开启服务时会出现异常问题,将此配置删除之后开启服务,正常运行。
注:
在配置文件中设置连接数据库,通过ip+端口的方式,设置URL为:url="jdbc:mysql://<mysql_ip><mysql_port>/<database>?characterEncoding=UTF-8"
通过域名方式访问连接数据库时,设置URL为:
url="jdbc:mysql://<域名>/<database>" #其中访问域名时,域名本身应该带有端口绑定,直接在域名之后添加数据库名称即可。