【问题标题】:How to run a spring project如何运行春季项目
【发布时间】:2012-12-13 10:10:26
【问题描述】:

我需要继续一个现有的模板项目,您可以在这里找到:

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

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

【问题讨论】:

    标签: spring maven hsqldb


    【解决方案1】:

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

    mvn 全新安装

    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 -> BankingWeb-servlet.xml -> LoginController -> loginSuccess.jsp.

    但在所有这些发生之前,由于 web.xml 中提到了一个过滤器,所以会先执行过滤器。

    此外,由于 web.xml 文件中有一个 ContextLoadListener 属性,Spring 将搜索一个名为 applicationContext.xml 的文件,您将在其中导入banking.deploy.xml。这就是基本流程的发生方式。 不得不说,是时候升级到 Spring 3.0 了,而且到目前为止,你在整个项目中还没有使用太多 Spring。

    【讨论】:

    • 如何“构建”项目以获取战争文件?有人可以指点我一些参考资料吗?当我在服务器上运行它时,我得到一个 404 页面,显示“请求的源不可用”。
    • 准备好 pom.xml 后,转到项目的主目录,然后键入上述 maven install 命令。在此之前,如果您使用的是 Eclipse IDE,请从主目录执行: mvn eclipse:eclipse 然后执行 mvn clean install 命令。这将产生一个目标目录,您的战争文件将在其中形成。将其复制到 Apache Tomcat 的 webapps 目录中,然后点击 url。
    【解决方案2】:

    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

    【讨论】:

      【解决方案3】:

      假设您的 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 功能。

      希望对您有所帮助。

      【讨论】:

      • 根据描述,不应该在项目中添加或编辑任何内容以使其运行...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多