繁体   English   中英

使用War文件部署到Tomcat导致ClassNotFoundException

[英]Deployment to Tomcat using War file resulting in ClassNotFoundException

我正在开发一个Web应用程序,遇到了麻烦,可以使用一些建议。 因此,该应用程序是由不再在我们公司工作的同事编写的。 他们在后端使用Java和Javascript为Apache Tomcat编写了一个Web应用程序。 该应用程序利用JDBC API与SQL Server数据库进行接口。 这个人完成了Eclipse中的所有开发并以这种方式运行它。

我正在尝试将此Web应用程序并将其移至服务器。 我通过使用Eclipse导出WAR文件,然后将其放置在Tomcat webapps文件夹中来进行尝试。 然后,当我启动Tomcat时,程序被解压缩。 到现在为止还挺好。 该网站启动并运行良好。 但是,当我尝试访问依赖于数据库信息的页面时,所有内容都将变为NULL。 我浏览了Tomcat日志,发现在标准输出中给出了以下消息:

ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver

我以为WAR文件将包含所有依赖项,但我猜测可能并非如此。 如果有经验的人,这是发生了什么吗? 如果外面有人知道,有没有办法告诉Eclipse执行此操作? 否则,我有什么选择? 我不是Java开发人员,因此如果需要,我将不知道如何安装JDBC。

任何帮助表示赞赏。 麦克风

您可以执行以下操作

  1. 转到Microsoft JDBC驱动程序下载页面,下载JDBC驱动程序并将其安装到某个位置。
  2. 使用7-zipwinzip类的zip实用程序打开.war文件。
  3. 从安装了下载的JDBC驱动程序的sqljdb_4.0/enu目录中复制sqljdbc.jar,并将其粘贴到提取的war文件的WEB-INF/lib中。
  4. 将其压缩为.war文件,然后再次部署。

这将使应用程序运行。

如果要永久修复此问题,则在构建war文件时,应在构建系统中(例如,如果使用ANT或在Maven的环境中,请在build.xml中)添加停止sqljdbc.jar ,以将sqljdbc.jar包含到WEB-INF/lib此依赖项的“ dependencies部分下的pom.xml。

您无需手动执行“导出WAR>复制到tomcat>启动tomcat”,您可以将eclipse配置为直接在tomcat安装中进行部署,首先双击tomcat服务器,然后在其中选择“使用tomcat安装” “服务器位置”部分。 在此处输入图片说明

确保您的应用程序在项目WebContent/WEB-INF/lib目录中(假设您的同事将Eclipse“动态Web项目”用于项目布局)包含SQLServer JDBC驱动程序( sqljdbc4.jar ),如果没有,请从此处下载,解压缩并将其复制到上述文件夹中,下次您启动tomcat时,它将自动为您添加它。

如果项目使用maven项目布局(项目根文件夹中有一个名为pom.xml的文件),请按照以下说明在本地存储库中安装依赖项(Maven和Microsoft之间在许可和重新分配许可证方面存在一些分歧)驱动程序,因此没有回购)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM