Tomcat启动时报错:Could not load com.microsoft.sqlserver.jdbc.SQLServerResource

Tomcat不添加项目时没问题,添加项目后有问题,报错如下:

Illegal access: this web application instance has been stopped already.  Could not load com.microsoft.sqlserver.jdbc.SQLServerResource_zh.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1777)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
	at java.util.ResourceBundle$Control.newBundle(Unknown Source)
	at java.util.ResourceBundle.loadBundle(Unknown Source)
	at java.util.ResourceBundle.findBundle(Unknown Source)
	at java.util.ResourceBundle.findBundle(Unknown Source)
	at java.util.ResourceBundle.getBundleImpl(Unknown Source)
	at java.util.ResourceBundle.getBundle(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerException.getErrString(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
	at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
	at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
	at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
	at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
	at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)

看提示说的好像是没有加载SQLServerResource_zh.properties文件,可是这个文件我所有的项目里都没有,而别的项目都运行好好的。跟这个文件没关系,跟SQL Server数据库应该没关系。

 

于是开了SQL Server Management Studio,用.登陆了数据库引擎没问题再试试"127.0.0.1"和本地的IP地址,均报同样的错误

连接到服务器报错:
无法连接到127.0.0.1.
其他信息:
在与SQL Server建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server已配置为允许远程连接。(privider:命名管道提供程序,error:40-无法打开到SQL Server的连接)(Microsoft SQL Server,错误:5)

至此,前面的异常应该就知道问题所在了(数据库连接用的127.0.0.1):只要解决了这个问题,异常问题迎刃而解。

解决办法很简单:

打开SQL Server Configuration Manager,找到左侧的配置管理器,逐个点开,只要有“协议”的(如客户端协议、MSSQLSERVER协议),除了VIA属性禁用外,其他的属性都启用,如此之后重启SQL Server的各项服务,再去Studio种测试,就能访问了。Tomcat重新启动,项目也能访问了。

 

至此,问题解决。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误通常是由于缺少 SQL Server 驱动程序所致。请确认你是否已经下载并安装了 SQL Server 驱动程序,并将其添加到你的项目中。 如果你使用的是 Maven,则可以将以下依赖项添加到 pom.xml 文件中: ```xml <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>8.4.1.jre8</version> </dependency> ``` 如果你手动安装了 SQL Server 驱动程序,则需要将其添加到你的类路径中。可以通过以下步骤进行操作: 1. 将 SQL Server 驱动程序的 JAR 文件复制到你的项目中。 2. 在 Eclipse 中,右键单击项目,选择 "Build Path" -> "Configure Build Path"。 3. 在 "Libraries" 选项卡中,点击 "Add External JARs"。 4. 选择 JAR 文件并添加到你的项目中。 如果你使用的是其他 IDE 或构建工具,请参考相关文档以获取添加依赖项或类路径的方法。 ### 回答2: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver 是一个Java运行时异常,表示无法找到指定的驱动程序类 com.microsoft.sqlserver.jdbc.SQLServerDriver。 这个异常通常发生在使用JDBC连接SQL Server数据库时,因为在运行程序时找不到SQL Server驱动程序。这可能是由于以下几个原因导致的: 1. 缺少驱动程序:在连接SQL Server数据库之前,必须确保系统中已经安装了SQL Server驱动程序。如果缺少驱动程序,可以通过将驱动程序的JAR文件添加到项目的类路径中来解决此问题。 2. 类路径错误:如果驱动程序的JAR文件已经添加到类路径中,但仍然出现ClassNotFoundException异常,可能是由于类路径配置不正确导致的。请确保在类路径中正确指定了驱动程序类的位置。 3. 版本不匹配:使用的SQL Server驱动程序版本与数据库版本不匹配可能导致ClassNotFoundException异常。请确保使用与SQL Server数据库版本兼容的驱动程序版本。 4. 驱动程序配置错误:如果驱动程序的配置文件(如META-INF/services/java.sql.Driver)不正确或损坏,也可能导致ClassNotFoundException异常。请确保正确地配置了驱动程序。 解决此问题的方法是: 1. 确保已正确安装SQL Server驱动程序,并将其JAR文件添加到项目的类路径中。 2. 检查类路径设置,确保正确指定了驱动程序类的位置。 3. 确保SQL Server驱动程序的版本与数据库版本兼容。 4. 检查驱动程序的配置文件是否正确并且完好。 通过解决这些问题,应该能够避免java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver异常的发生,成功连接SQL Server数据库。 ### 回答3: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver是Java运行时异常的一种,表示在程序执行过程中无法找到com.microsoft.sqlserver.jdbc.SQLServerDriver类。 这个异常通常是因为缺少SQL Server驱动程序所致。要解决这个问题,可以按照以下步骤进行操作: 1. 确保已正确安装SQL Server JDBC驱动程序。可以从SQL Server官方网站下载适用于您的SQL Server版本的驱动程序,并将其添加到项目的classpath中。 2. 检查classpath是否正确设置。如果使用IDE进行开发,可以在项目的构建路径或依赖项中添加SQL Server驱动程序的jar文件。如果是手动编译和运行Java程序,则需要使用java -cp命令指定classpath,包括SQL Server驱动程序的jar文件。 3. 如果使用的是容器,例如Tomcat或Jboss,可以将SQL Server驱动程序的jar文件放入容器的lib目录中。这样,容器会自动加载驱动程序,并使其可用于应用程序。 4. 检查驱动程序的版本与SQL Server的版本是否匹配。不同版本的SQL Server可能需要使用不同的驱动程序版本。确保选择与SQL Server版本兼容的驱动程序。 通过以上步骤,您应该能够解决java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver异常,并成功连接SQL Server数据库。记得在代码中正确设置数据库连接参数,以便能够访问和操作数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值