Spring MVC 的 Maven 项目在 GlassFish 中部署错误

Maven project for Spring MVC Deploying in GlassFish Error(s)

我有一个 Spring 使用 Maven 项目创建的 MVC 网络应用程序。我尝试在 GlassFish 中 deploy/run 它,但收到以下错误。

以下错误:

cannot Deploy springMvcJdbcTemplate deploy is failing=Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver. Please see server.log for more details.

下面是我在 'pom.xml' 文件中的内容:

<dependencies>
    <dependency>
        <groupId>aopalliance</groupId>
        <artifactId>aopalliance</artifactId>
        <version>1.0</version>
    </dependency>           
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
        <scope>runtime</scope>
    </dependency>               
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.1.3.RELEASE</version>
    </dependency>

    <!-- Spring core & mvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>       

    <!-- CGLib for @Configuration -->
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib-nodep</artifactId>
        <version>${cglib.version}</version>
        <scope>runtime</scope>
    </dependency>

    <!-- Servlet Spec -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

这就是我在 'MvcConfiguration.java' 文件中的内容(我对这个 Maven 项目使用 'spring-mvc-achetype'):

@Bean
public DataSource getDataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    dataSource.setUrl("jdbc:sqlserver://7d0\MSSQLSERVER:1433;databaseName=db_name");
    dataSource.setUsername("usrnm");
    dataSource.setPassword("pwd");

    return dataSource;
}

我在 'C:\Usersd0.m2\repository\com\microsoft\sqlserver\sqljdbc4.0\' 中添加了 'sqljdbc4.jar' 文件,但我仍然收到相同的错误。

我该如何修正错误?谢谢提前。

尝试将 sqlserver jar 文件放在 glassfish 服务器的 lib 目录中

您是否检查过您的 WAR 文件以查看它是否与其他 jar 文件一起打包?您可以做的另一件事是将 JDBC jar 添加到 server/lib 目录中。

除了缺少库之外,还有另外两件事(基本上是一件事)需要确保:

applicationContext.xml in WEB-INF folder in your project.

其次,

If you are limited in including the application context as in above, then you must write configuration for the same as somewhat like in below.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/application-contexts/*.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

另请参阅以下内容以使用 Maven 和 Eclipse 设置 Spring MVC。 Link Here