【问题标题】:Deploy Spring MVC with Maven to Tc-Server in Ubuntu使用 Maven 将 Spring MVC 部署到 Ubuntu 中的 Tc-Server
【发布时间】:2013-08-01 10:27:06
【问题描述】:

首先我想让你知道这是我在 Spring 的第一个项目。 我已经使用 Maven、SPring MVC 和 Hibernate 构建了一个连接到 SQL 数据库的 Web 应用程序。到目前为止,所有部署都是使用 Amazon Eclipse Toolkit 在亚马逊实例中完成的。现在是时候投入生产了,我想知道如何手动创建一个war文件并将其部署到在ubuntu上运行的tc-server。实际上,正确的问题是如何手动配置应用程序以使用提供的配置在该特定服务器中运行? 我的 pom 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sprsec.controller</groupId>
<artifactId>id</artifactId>
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>App-Name</name>
<url>http://url-to-the-instance</url>

<properties>
    <hibernate.version>4.1.7.Final</hibernate.version>
    <mysql.connector.version>5.1.21</mysql.connector.version>
    <slf4j.version>1.6.6</slf4j.version>
    <spring.version>3.1.3.RELEASE</spring.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.4</version>
    </dependency>

    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.5</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.2</version>
    </dependency>
    <!-- DB related dependencies -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
    </dependency>

    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.12.1.GA</version>
    </dependency>

    <!-- SPRING -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- CGLIB is required to process @Configuration classes -->
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
    </dependency>


    <!-- Spring Security -->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- Servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>

    <!-- Other -->

    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <finalName>build-name</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

    </plugins>
</build>

【问题讨论】:

    标签: spring hibernate maven spring-mvc tcserver


    【解决方案1】:

    既然你已经创建了一个 WAR,就不需要特定的配置了吗?我认为您拥有连接到 Spring/Datasource 配置中的数据库的所有配置?

    所以最简单的解决方案是手动复制WAR文件:)

    mvn clean package
    
    cp target/build-name.war /yourtomcathome/webapps
    

    重新启动 tomcat(取决于您是否已作为服务安装)例如

    sudo service tomcat restart
    

    【讨论】:

    • 嗨,谢谢你的回答,但我不明白的是,如果在创建战争之前,我是否必须设置一个配置文件来告诉应用程序将安装在特定的主机,或域名,运行 tc-server 的路径或类似的东西?例如,我阅读了这篇文章:packtpub.com/article/spring-mvc-configure-deploy-application,不确定是否需要创建 build.xml 和 build.properties 文件。
    • 并非如此。只要您复制到 /webapps 文件夹,Tomcat 就会理解 WAR 文件...试试看;)
    猜你喜欢
    • 2013-04-08
    • 2018-03-28
    • 2012-09-12
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多