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

时间:2015-04-14 17:19:33

标签: java spring maven spring-mvc glassfish-4

我有一个使用Maven项目创建的Spring MVC Web应用程序。我尝试在GlassFish中部署/运行它,我收到以下错误。

以下错误:

  

无法部署springMvcJdbcTemplate   部署失败=部署期间发生错误:   加载应用程序时出现异常:java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:org.apache.catalina.LifecycleException:java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver。有关更多详细信息,请参阅server.log。

以下是我在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&#39;文件(我使用&#39; spring-mvc-achetype&#39;对于这个Maven项目):

@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;
}

我添加了&#39; sqljdbc4.jar&#39;文件位于&#39; C:\ Users \ 7d0.m2 \ repository \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0 \&#39;,但我仍然收到相同的错误。

我该如何修复错误?谢谢你的到来。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

除了缺少图书馆之外,还有其他两件事(基本上是一件事)可以确保:

  

项目中WEB-INF文件夹中的applicationContext.xml。

其次,

  

如果您仅限于包含上面的应用程序上下文,那么您必须编写相同的配置,如下所示。

<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