如何运行一个弹簧项目

时间:2012-12-13 10:10:26

标签: spring maven hsqldb

我需要继续使用您可以在此处找到的现有模板项目:

http://soft.vub.ac.be/soft/_media/edu/aosd/bankingwebstudent.zip

到目前为止,我已经实现了数据和服务层,但是你如何运行这个项目呢?因为据我所知没有主要类型...我尝试通过右键单击运行banking.deploy.xml - >在服务器上运行 - > tomcat 6.0但是没有用。

3 个答案:

答案 0 :(得分:2)

从你附加的任何文件中,它似乎不是一个maven项目,因为它缺少一个pom.xml文件。如果要将项目转换为maven项目,只需将项目导入IDE(可能是Eclipse)作为普通的Java Web应用程序项目,然后右键单击并添加maven pom.xml文件。(请安装maven在执行此操作之前的eclipse插件。)然后,您可以转到项目主文件夹,并在命令提示符下,将项目构建为:

mvn clean install

OR

mvn clean install -Dmaven.test.skip -DskipTests(如果你想跳过任何测试)。

构建项目后,从目标目录复制war文件,并将其复制到ApacheTomcat的webapps文件夹中。

由于您的web.xml中有此条目:

<servlet>
    <servlet-name>BankingWeb</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

默认情况下,Spring会查找名为BankingWeb-servlet.xml的配置文件,该文件位于应用程序中,您在其中导入了用于配置控制器的xml文件(即banking.web.controller.xml)。

现在,假设您触发以下网址:

http:// localhost:8080 / BankingWeb / login.htm

流程就像:

web.xml - &gt; BankingWeb-servlet.xml - &gt; LoginController - &gt; loginSuccess.jsp。

但在所有这些发生之前,由于web.xml中提到了过滤器,因此将首先执行过滤器。

此外,由于web.xml文件中有ContextLoadListener属性,因此Spring将搜索名为applicationContext.xml的文件,您将在其中导入banking.deploy.xml。这就是基本流程的发生方式。 必须说你升级到Spring 3.0的时间很长,而且截至目前你还没有在整个项目中使用过很多Spring。

答案 1 :(得分:0)

Spring是一个框架,可以帮助您管理您的servlet。 您需要从项目中创建war文件并将其部署在tomcat中。

您需要按照以下说明编辑web.xml(在tomcat中):

http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch16s02.html

之后,对tomcat的HTTP请求将被重定向到spring servlet

答案 2 :(得分:0)

假设您的Spring设置一致且您的web.xml包含相关的RequestContextListener,例如

<web-app ...>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
</web-app>

您可以使用Jetty编写一个小Launcher类来启动应用程序:

public class Launcher
{
    public static void main( String[] args ) throws Exception
    {
        Server jettyServer = new Server();
        SocketConnector conn = new SocketConnector();
        conn.setPort( 8080 );
        jettyServer.setConnectors( new Connector[]{ conn } );
        WebAppContext context = new WebAppContext();
        context.setContextPath( "/" );
        context.setWar( "src/main/webapp" );
        jettyServer.setHandler( context );
        jettyServer.start();
    }
}

您至少需要这种依赖:

<dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty</artifactId>
    <version>6.1.9</version>
</dependency>

但如果你需要,也可以是其他人。 JSP和/或JNDI功能。

希望有所帮助。