如何为站点系统配置 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

windows下如何为jdk配置环境变量

如何为 django 驱动的 flash 站点的小型托管公司配置服务器?

如何为你的WWW站点启用HTTPS?

如何为站点网格启用日志

Apache:如何为一个ServerName拥有多个站点?