tomcat运行安卓项目连不上数据库

tomcat运行安卓项目连不上数据库,第1张

方法如下

首先确定你要修改的连接是否能正常访问,然后,jsp项目,除了修改html文件,不用重启tomcat,修改其他文件,都需要重启tomcat的。

tomcat仅是一个服务,跟你连的上连不上数据库没有关系 看下你项目中数据库的路径\参数是否都正确。

重新设置root用户密码, *** 作步骤如下:

1、查看系统服务;

2、如果MySQL服务器正在运行,停止它。

如果是作为Windows服务运行的服务器,进入服务管理器:开始菜单->控制面板->管理工具->服务

如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。

3、创建1个文本文件,并将下述命令置于单一行中:

SET

PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

用任意名称保存该文件。在本例中,该文件为C:\mysql-inittxt。

4、进入DOS命令提示:开始菜单->运行-> cmd

假定你已将MySQL安装到C:\mysql。如果你将MySQL安装到了另一位置,请对下述命令进行相应的调整。

在DOS命令提示符下,执行命令:

C:\mysql\bin\>mysqld-nt

--init-file=C:\mysql-inittxt

在服务器启动时,执行由“--init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:\mysql-inittxt。

5、如果起动MySQL服务器出错,把进程mysqld-ntexe关闭。然后重启它,OK。

6、或者停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。

应能使用新密码进行连接。

windows下修改mysql密码的便捷方法

开始-》运行

mysqladmin -uroot -p password '你的新密码'

实时查看tomcat并发连接数

netstat -na | grep ESTAB | grep 8080 | wc -l

实时查看apache并发连接数

netstat -na | grep ESTAB | grep 80 | wc -l

给你一段代码,看看对你有没有帮助:

这是我的tomcatde DHCP的配置

<Resource driverClassName="commicrosoftsqlserverjdbcSQLServerDriver" logAbandoned="true" maxActive="20" maxIdle="2" maxWait="5000" name="system" password="sa" removeAbandoned="true" removeAbandonedTimeout="60" type="javaxsqlDataSource"

url="jdbc:sqlserver://127001:1433;DatabaseName=base" username="sa"/>

当中的

logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="60"就是用来配置数据库断开后自动连接的。

问题解决思路:

将配置文件用户相关的信息(例如:密码)进行加密使其以密文形式存在,进行初始化连接池的时候进行解密 *** 作,达到成功创建连接池的目的。Tomcat默认使用DBCP连接池(基于common-pool的一种连接池实现),对orgapachecommonsdbcpBasicDataSourceFactory类修改,把数据库密码字段(加密后的密文)用解密程序解密,获得解密后的明文即可。

具体实现:

1 修改orgapachecommonsdbcpBasicDataSourceFactory类文件

找到数据源密码设置部分

value = propertiesgetProperty(PROP_PASSWORD);

if (value != null) {

dataSourcesetPassword(value);

}

修改为:

value = propertiesgetProperty(PROP_PASSWORD);

if (value != null) {

dataSourcesetPassword(Encodedecode(value));

}

将配置文件中的“密码”(加密后的结果)取出,调用加解密类中的解密方法Encodedecode(value)进行解密。

2 加密类Encodejava,本例中使用加密解密模块比较简单只是用来说明问题,密文为明文的十六进制串。

public class Encode {

//编码-普通字符串转为十六进制字符串

public static String encode(String password){

String result = “”;

byte[] psd = passwordgetBytes();

for(int i=0;i<psdlength;i++){

result += IntegertoHexString(psd[i]&0xff);

}

return result;

}

//解码–十六进制字符串转为普通字符串

public static String decode(String password){

String result = “”;

password = passwordtoUpperCase();

int length = passwordlength() / 2;

char[] hexChars = passwordtoCharArray();

byte[] d = new byte[length];

for (int i = 0; i < length; i++) {

int pos = i 2;

d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));

}

result = new String(d);

return result;

}

//字符转字节

public static byte charToByte(char c) {

return (byte) “0123456789ABCDEF”indexOf(c);

}

}

3 数据库连接池文件,红色字体为数据源配置中密码设置,此时已经改为密文形式。

<xml version=’10′ encoding=’utf-8′>

<Context docBase=”reportmis” path=”/reportmis” privileged=”true” workDir=”work\Catalina\localhost\reportmis”>

<Resource auth=”Container” name=”mis2datasource” type=”javaxsqlDataSource”/>

<ResourceParams name=”mis2datasource”>

<parameter>

<name>password</name>

<value>696e65743231</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:oracle:thin:@127001:1521:orcl</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>oraclejdbcdriverOracleDriver</value>

</parameter>

<parameter>

<name>username</name>

<value>wanfang</value>

</parameter>

</ResourceParams>

</Context>

4 将修改后的BasicDataSourceFactoryjava和新添加的Encodejava编译后的class类文件重新打包进commons-dbcp-14jar,将该包拷贝进tomcat下的common/lib目录中,重启tomcat。此时tomcat下部署的应用在连接数据源的时候都可以在不暴露密码明文的情况下进行连接。

以上就是关于tomcat运行安卓项目连不上数据库全部的内容,包括:tomcat运行安卓项目连不上数据库、tomcat 访问数据库失败、如何查看tomcat6.0当前的数据库连接数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9477228.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存