如何为站点系统配置 Windows Server 2008
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为站点系统配置 Windows Server 2008相关的知识,希望对你有一定的参考价值。
使用以下信息为 配置管理器 配置 Windows Server 2008 和 Windows Server 2008 R2 站点系统:站点服务器和分支分发点计算机的远程差分压缩
Internet Information Services (IIS)
将 WebDAV 配置为支持为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的管理点和分发点
在 Windows Server 2008 和 Windows Server 2008 R2 计算机上安装 Internet Information Services (IIS)
为 IIS 7.0 安装 WebDAV
启用 WebDAV 并创建一个创作规则
在分发点上配置 requestFiltering 部分
站点服务器和分支分发点计算机的远程差分压缩
站点服务器和分支分发点需要远程差分压缩 (RDC),才能生成包签名和执行签名比较。默认情况下,Windows Server 2008 或 Windows Server 2008 R2 上未安装 RDC,因此必须手动启用 RDC。
使用以下过程为 Windows Server 2008 和 Windows Server 2008 R2 启用远程差分压缩。
在 Windows Server 2008 或 Windows Server 2008 R2 计算机上,导航到“开始”/“所有程序”/“管理工具”/“服务器管理器”以启动服务器管理器。在服务器管理器中,选择“功能”节点并单击“添加功能”以启动添加功能向导。
在“选择功能”页面上,选择“远程差分压缩”,然后单击“下一步”。
完成向导的剩余步骤。
关闭服务器管理器。
Internet Information Services (IIS)
如果 Windows Server 2008 和 Windows Server 2008 R2 计算机将用于承载以下任何站点系统角色,则必须为这些计算机安装 Internet Information Services (IIS):
管理点
为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的分发点
报表点
软件更新点
服务器定位器点
回退状态点
将 WebDAV 配置为支持为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的管理点和分发点
除了配置 IIS 外,还必须针对为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的管理点和分发点配置 WebDAV 扩展。
带 IIS 7.0 的 Windows Server 2008:安装 IIS 7.0 后手动安装和配置 WebDAV 扩展。
带 IIS 7.5 的 Windows Server 2008 R2:IIS 附带 WebDAV 扩展,您不必手动下载这些扩展,但在安装 IIS 过程中必须启用 WebDAV 扩展。
在 Windows Server 2008 和 Windows Server 2008 R2 计算机上安装 Internet Information Services (IIS)
使用适用于 Windows Server 2008 和 Windows Server 2008 R2 的以下过程:
在 Windows Server 计算机上,导航到“开始”/“所有程序”/“管理工具”/“服务器管理器”以启动服务器管理器。在服务器管理器中,选择“功能”节点,然后单击“添加功能”以启动添加功能向导。
在添加功能向导的“选择功能”页面上:
对于 Windows Server 2008,请选中“BITS 服务器扩展”复选框。对于 Windows Server 2008 R2,请选中“后台智能传输服务(BITS)”复选框。出现提示时,单击“添加必需的角色服务”添加从属组件,包括 Web 服务器 (IIS) 角色。
选中“远程差分压缩”复选框,然后单击“下一步”。
在添加功能向导的“Web 服务器 (IIS)”页面上,单击“下一步”。
在添加功能向导的“选择角色服务”页面上:
仅限 Windows Server 2008 R2:对于“常见 HTTP 功能”,请选中“WebDAV 发布”复选框。
对于“应用程序开发”,请选中“ASP.NET”复选框,出现提示时,单击“添加必需的角色服务”以添加从属组件。
注意
如果站点系统将被配置为报表点,则还必须选中“ASP”复选框。
对于“安全”,请选中“Windows 身份验证”复选框。
在“管理工具”节点中,对于“IIS 6 管理兼容性”,请确保选中“IIS 6 元数据库兼容性”和“IIS 6 WMI 兼容性”复选框,然后单击“下一步”。
在“确认”页面上,单击“安装”,然后完成向导的剩余步骤。
单击“关闭”退出添加功能向导,然后关闭服务器管理器。
为 IIS 7.0 安装 WebDAV
您必须在包含 IIS 7.0 的 Windows Server 2008 计算机上手动安装 WebDAV。以下过程适用于安装了 IIS 7.0 的 Windows Server 2008:
根据您的服务器操作系统体系结构,从下列位置下载 x86 或 x64 版本的 WebDAV:http://go.microsoft.com/fwlink/?LinkId=108052(页面可能为英文)。
根据所下载的版本,运行 webdav_x86_rtw.msi 或 webdav_x64_rtw.msi 文件以安装 WebDAV IIS 7.0 扩展。
启用 WebDAV 并创建一个创作规则
使用以下过程为 Windows Server 2008 和 Windows Server 2008 R2 启用 WebDAV 并创建创作规则:
导航到“开始/所有程序/管理工具/Internet 信息服务 (IIS) 管理器”以启动 Internet Information Services 7 应用程序服务器管理器。
在“连接”窗格中,展开“站点”节点,如果对站点系统使用默认网站,则单击“默认网站”,如果对站点系统使用自定义网站,则单击“SMSWEB”。
在“功能视图”中,双击“WebDAV 创作规则”。
显示“WebDAV 创作规则”页面后,在“操作”窗格中,单击“启用 WebDAV”。
在“操作”窗格中,单击“添加创作规则”。
在“添加创作规则”对话框中,对于“允许访问”,选择“所有内容”。
对于“允许访问此内容”,选择“所有用户”。
对于“权限”,选择“读取”,然后单击“确定”。
使用以下过程在 Windows Server 2008 和 Windows Server 2008 R2 上更改 WebDAV 的属性行为:
在“WebDAV 创作规则”页面的“操作”窗格中,单击“WebDAV 设置”。
在“WebDAV 设置”页面中,对于“属性行为”,将“允许匿名属性查询”设置为“True”。
将“允许自定义属性”设置为 False。
将“允许深度不受限制的属性查询”设置为 True。
对于为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的分发点,将“WebDAV 行为”的“允许列出隐藏文件”设置为“True”。
在“操作”窗格中,单击“应用”。
关闭 Internet Information Services (IIS) 管理器。
在分发点上配置 requestFiltering 部分
如果您使用为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的分发点,则适用以下信息。
如果包源文件包含 IIS 7.0 中默认阻止的扩展名,则您必须在为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的分发点上配置 applicationHost.config 文件中的 requestFiltering 部分。
重要
如果为网站启用 WebDAV 并修改 applicationHost.config 文件的 requestFiltering 部分,则会增加计算机的攻击面。只有在为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的管理点和分发点需要时,才启用 WebDAV。如果在默认网站上启用 WebDAV,则它对于所有使用该默认网站的应用程序均处于启用状态。如果修改 requestFiltering 部分,则是为该服务器上的所有网站修改该部分。最佳安全方案是在专用 Web 服务器上运行 Configuration Manager 2007。如果必须在 Web 服务器上运行其他应用程序,请对 Configuration Manager 2007 使用自定义网站。有关详细信息,请参阅保护站点系统的最佳方案。
使用以下过程针对 Windows Server 2008 和 Windows Server 2008 R2 修改 requestFiltering:
在为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的分发点上,打开位于 %Windir%\System32\Inetsrv\Config\ 目录中的 applicationHost.config 文件。
搜索 <requestFiltering> 部分。
确定在该分发点上的包中具有的文件扩展名。对于您需要的每一文件扩展名,将已允许更改为true。
例如,如果包中包含扩展名为 .mdb 的文件,请将行 <add fileExtension=".mdb" allowed="false" /> 更改为 <add fileExtension=".mdb" allowed="true" />。
只允许包所需要的文件扩展名。
保存并关闭 applicationHost.config 文件。 参考技术A 使用以下信息为 配置管理器 配置 Windows Server 2008 和 Windows Server 2008 R2 站点系统:站点服务器和分支分发点计算机的远程差分压缩
Internet Information Services (IIS)
将 WebDAV 配置为支持为“允许客户端使用 BITS、HTTP 和 HTTPS 从此分发点传输内容”而启用的管理点和分发点
在 Windows Server 2008 和 Windows Server 2008 R2 计算机上安装 Internet Information Services (IIS)
为 IIS 7.0 安装 WebDAV
启用 WebDAV 并创建一个创作规则
在分发点上配置 requestFiltering 部分
站点服务器和分支分发点计算机的远程差分压缩
站点服务器和分支分发点需要远程差分压缩 (RDC),才能生成包签名和执行签名比较。默认情况下,Windows Server 2008 或 Windows Server 2008 R2 上未安装 RDC,因此必须手动启用 RDC。
使用以下过程为 Windows Server 2008 和 Windows Server 2008 R2 启用远程差分压缩。
在 Windows Server 2008 或 Windows Server 2008 R2 计算机上,导航到“开始”/“所有程序”/“管理工具”/“服务器管理器”以启动服务器管理器。在服务器管理器中,选择“功能”节点并单击“添加功能”以启动添加功能向导。
如何为 SQL Server(Windows 身份验证)配置 Spring XML?
【中文标题】如何为 SQL Server(Windows 身份验证)配置 Spring XML?【英文标题】:How to configure Spring XML for SQL Server (Windows Authentication)? 【发布时间】:2019-01-16 17:31:27 【问题描述】:我不知道如何使用 Spring XML 和 Windows 身份验证连接 SQL Server。它抛出一个错误说
属性“driverClassName”抛出异常;嵌套异常是 java.lang.IllegalStateException:无法加载 JDBC 驱动程序类 [com.microsoft.sqlserver.jdbc.SQLServerDriver]”。
我也在 Gradle 中添加了这个库。
这是我的 spring-mvc-demo-servlet:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ca="http://www.springframework.org/schema/cache"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- Step 3: Add support for component scanning -->
<context:component-scan base-package="pl.c" />
<!-- Step 4: Add support for conversion, formatting and validation support -->
<mvc:annotation-driven/>
<!-- Step 5: Define Spring MVC view resolver -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- Database DataSource -->
<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://localhost:1433;integratedSecurity=true;" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />
<property name="packagesToScan" value="pl.c.entity" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="myTransactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="myTransactionManager" />
<mvc:resources mapping="/view-additions/**" location="view-additions/" />
Gradle 配置:
plugins
id 'war'
id 'java'
group 'pl.c.wct'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories
mavenCentral()
dependencies
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.4.0.Final'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.44'
compile group: 'javax.servlet', name: 'servlet-api', version: '2.5'
compile group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1'
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.1.3.RELEASE'
compile group: 'javax.servlet', name: 'jstl', version: '1.2'
compile group: 'org.hibernate', name: 'hibernate-validator', version: '6.0.13.Final'
compile group: 'org.springframework', name: 'spring-orm', version: '5.1.3.RELEASE'
compile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '7.0.0.jre8'
compile group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4'
compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.5.0'
compile group: 'commons-pool', name: 'commons-pool', version: '1.6'
compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
这是堆栈跟踪:
[..]
16-Jan-2019 18:15:33.691 INFO [http-nio-8080-exec-3] org.springframework.web.servlet.FrameworkServlet.initServletBean Initializing Servlet 'dispatcher'
16-Jan-2019 18:15:33.792 WARNING [http-nio-8080-exec-3] org.springframework.context.support.AbstractApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/spring-mvc-demo-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
16-Jan-2019 18:15:33.792 SEVERE [http-nio-8080-exec-3] org.springframework.web.servlet.FrameworkServlet.initServletBean Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/spring-mvc-demo-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1685)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1400)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:701)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:667)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:715)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:590)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:529)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:169)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1124)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1079)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:122)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:77)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1681)
... 37 more
16-Jan-2019 18:15:33.907 INFO [http-nio-8080-exec-6] org.springframework.web.servlet.FrameworkServlet.initServletBean Initializing Servlet 'dispatcher'
16-Jan-2019 18:15:34.025 WARNING [http-nio-8080-exec-6] org.springframework.context.support.AbstractApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/spring-mvc-demo-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
16-Jan-2019 18:15:34.026 SEVERE [http-nio-8080-exec-6] org.springframework.web.servlet.FrameworkServlet.initServletBean Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/spring-mvc-demo-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1685)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1400)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:701)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:667)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:715)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:590)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:529)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:169)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1124)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1079)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:122)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:77)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1681)
... 37 more
16-Jan-2019 18:15:34.200 INFO [http-nio-8080-exec-7] org.springframework.web.servlet.FrameworkServlet.initServletBean Initializing Servlet 'dispatcher'
16-Jan-2019 18:15:34.262 WARNING [http-nio-8080-exec-7] org.springframework.context.support.AbstractApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/spring-mvc-demo-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
16-Jan-2019 18:15:34.262 SEVERE [http-nio-8080-exec-7] org.springframework.web.servlet.FrameworkServlet.initServletBean Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/spring-mvc-demo-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1685)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1400)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:701)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:667)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:715)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:590)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:529)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:169)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1124)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1079)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:122)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:77)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1681)
... 37 more
16-Jan-2019 18:15:38.090 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\c\Downloads\apache-tomcat-9.0.13-windows-x64\apache-tomcat-9.0.13\webapps\manager]
16-Jan-2019 18:15:38.151 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\c\Downloads\apache-tomcat-9.0.13-windows-x64\apache-tomcat-9.0.13\webapps\manager] has finished in [61] ms
此代码连接 SQL SERVER:
package pl.c.testdb;
import java.sql.*;
public class MSSQL
public static void getDbConnection()
try
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;integratedSecurity=true;");
if (conn != null)
DatabaseMetaData metaObj = conn.getMetaData();
System.out.println("Driver Name?= " + metaObj.getDriverName() + ", Driver Version?= " + metaObj.getDriverVersion() + ", Product Name?= " + metaObj.getDatabaseProductName() + ", Product Version?= " + metaObj.getDatabaseProductVersion());
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM PraceDyplomowe.dbo.Student");
while (rs.next())
System.out.println(rs.getString(2));
catch (Exception sqlException)
sqlException.printStackTrace();
public static void main(String[] args)
getDbConnection();
这些是环境变量(我使用这里的解决方案但它不起作用:https://blogs.msdn.microsoft.com/brian_swan/2011/03/02/getting-started-with-the-sql-server-jdbc-driver/)
Environmental Variables
【问题讨论】:
错误提示驱动不在类路径中 这是Tomcat部署问题还是系统环境问题? 您可以访问您的系统,而我们没有。我们不知道。 我按照他们写的那样做:blogs.msdn.microsoft.com/brian_swan/2011/03/02/… 如果您想尝试基本的 Java 编程,这些说明“很好”,但对于大多数“真正的”Java 程序(包括 Tomcat)来说,诸如CLASSPATH
环境变量之类的东西会被忽略。解压gradle生成的war,检查Microsoft SQL Server JDBC驱动是否在WEB-INF/lib
文件夹下;还要确保您的 Tomcat 在 Java 8 上运行。
【参考方案1】:
答案是把mssql-jdbc-7.0.0.jre8.jar lib放到部署war的文件夹WEB-INF/lib中,因为gradle不会自动做。
【讨论】:
以上是关于如何为站点系统配置 Windows Server 2008的主要内容,如果未能解决你的问题,请参考以下文章
如何为 SQL Server Windows 身份验证配置 Squirrel SQL