我正在开发一个Web应用程序,并且可以使用一些建议。因此,该申请是由不再在我们公司的同事撰写的。他们在后端为Apache Tomcat编写了一个带有Java和Javascript的Web应用程序。该应用程序使用JDBC api与SQL Server数据库进行交互。这个人在Eclipse中完成了所有的开发并以这种方式运行它。
我正在尝试使用此Web应用程序并将其移至服务器。我尝试使用Eclipse导出WAR文件,然后将其放在Tomcat webapps文件夹中。然后,当我启动Tomcat时,程序被提取出来。到现在为止还挺好。该网站出现并运作良好。但是,当我尝试访问依赖于数据库信息的页面时,一切都会变为NULL。我浏览了Tomcat日志,发现在标准输出中给出了以下消息:
ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver
我曾假设WAR文件将包含所有依赖项,但我猜这可能不是这种情况。如果有人有经验,这是怎么回事?如果有人知道,有没有办法告诉Eclipse这样做?否则,我的选择是什么?我不是Java开发人员,因此我不知道如何在需要时安装JDBC。
感谢任何帮助。 麦克
答案 0 :(得分:1)
您可以执行以下操作
.war
或7-zip
之类的zip实用程序打开winzip
文件。sqljdb_4.0/enu
目录复制sqljdbc.jar,并将其粘贴到解压缩的war文件的WEB-INF/lib
中。.war
文件拉回并重新部署。这将使应用程序运行。
如果您想永久修复此问题,那么您应该在构建系统中构建sqljdbc.jar
文件时添加止值以包含WEB-INF/lib
到war
,即在build.xml中如果您正在使用ANT或在dependencies
部分下的Maven的pom.xml中使用此特定依赖项。
答案 1 :(得分:0)
您不需要手动执行“导出WAR>复制到tomcat>启动tomcat”,您可以配置eclipse直接在您的tomcat安装中进行部署,先双击tomcat服务器,然后选择“在“服务器位置”部分中使用“tomcat安装”。
确保您的应用程序在项目sqljdbc4.jar
目录中包含SQLServer JDBC驱动程序(WebContent/WEB-INF/lib
)(假设您的同事使用Eclipse“Dynamic Web Project”进行项目布局),如果没有,从here下载,解压缩并将其复制到上述文件夹,下次启动tomcat时,它会自动为您添加。
如果项目使用maven项目布局(项目根文件夹中有一个名为pom.xml
的文件),请使用following instructions在本地存储库中安装依赖项(之间存在一些分歧) Maven和Microsoft关于驱动程序的许可和重新分发,所以没有repo)