2013-02-12 73 views
-2

我有一个在Tomcat下运行的webapp,通过jdbc连接到SQL Server Express以获取数据。在我第一次用于开发的Vista机器上运行良好。我一直在试图将它移到Windows 7机器上运行,但它不起作用,并且我已经耗尽了要检查的内容。需要帮忙。两台机器上的安装(我的部分)似乎完全相同。但是我应该提到新机器(它不工作的地方)有另一个运行的应用程序连接到相同或不同版本的SQL Server。以下是Tomcat日志中的错误。Tomcat未连接到SQL Server Express

Allvarlig: StandardWrapper.Throwable 
java.lang.NullPointerException 
    at nu.isr.hll.webshop.core.HLListProcess.initialize(HLListProcess.java:73) 
    at nu.isr.hll.webshop.servlets.HLListServlet.init(HLListServlet.java:31) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

回答

-1

jdbc驱动程序未加载。

看起来问题归结为一个有问题的Microsoft jdbc驱动程序。根据文档,sqljdbc4不需要显式的驱动程序注册。版本4应自动执行此操作。在Microsoft Vista开发机器上正常工作。但是,当我在Windows 7上安装应用程序时它不起作用(他们在这里是两个不同的操作系统,我猜这很重要。)

不得不包括Class.forName(“com.microsoft.sqlserver.jdbc .SQLServerDriver“);

现在,它的工作原理!

+0

我要在这里添加一个警告。使用jdbc的一个很好的理由是你不需要重写你的代码来切换数据库系统。基于非标准微软功能做一些事情首先是一个坏主意。我在过去的一个小时里一直在想这件事,想知道为什么我会为此而堕落。 – 2013-02-13 16:42:26

+0

我认为现在这篇文章和解决方案为使用jdbc和SQL Server的人提供了一个很好的资源,其中很多人会遇到同样的问题。 – 2013-02-14 16:12:35

+0

我认为在技术讨论论坛上花费很多时间之前,你需要在专业的人际交往技巧上工作;也提高了逻辑技巧。在某些东西上发帖寻求帮助的人不会吹嘘它。因此,你的低价拍摄不会达到标准。我可以进一步解释为什么这是一个很好的帖子,但我不认为你现在能够理解它。 – 2013-02-14 17:14:37