【问题标题】:What framework + application server + development environment to use for Java services?Java服务使用什么框架+应用服务器+开发环境?
【发布时间】:2011-04-02 02:06:33
【问题描述】:

我正在尝试编写一个 24/7 全天候运行的 Java 服务,从网络上抓取内容并将其存储到数据库中。鉴于我想...

1.) 有一个应用程序服务器,我可以将我的代码部署到(并让它自动运行)。这个应用服务器应该与我的开发环境运行所在的机器分开放置。

2.) 拥有一个开发平台(我更喜欢基于 eclipse 的东西),它允许我将代码直接部署到应用程序服务器(因此我不必通过 ftp 进行测试)。

3.) 使用像 Spring 这样的框架。

实际上,我想知道为我的...选择什么...

1.) 应用服务器

2.) 开发环境(ide)——如果是eclipse,使用什么服务器适配器

3.) 框架

到目前为止,我已尝试将VirgoSpringSource STS 一起使用,但无法为非本地主机驻留服务器配置Web 服务器适配器。我不想在我的开发机器上安装 Virgo,也不想为了部署而将我的代码 ftp 跳到我的生产服务器。

【问题讨论】:

    标签: java eclipse spring web-applications application-server


    【解决方案1】:

    为什么不直接使用 Tomcat 或其他 Web 容器,但最好将其拆分为两个应用程序。

    有一个作为一个独立的应用程序出去并进行抓取,为此你可以选择任何东西,我会选择Groovy (http://groovy.codehaus.org/),因为在这里易于开发和维护很重要,而且你可以使用 Eclipse 的 Groovy 插件。

    另一个是 Web 服务,为此我认为 Scala (http://www.scala-lang.org/) 会很好,如果你有时间学习它,但 Grails(一个 groovy 框架)将是有益的,所以您可以编写 REST 或 SOAP Web 服务。

    通过将它们分开,您可以为该特定方面选择最佳解决方案,因为网络服务器不应该参与抓取,但网络服务器需要从数据库中读取。

    这两种语言在 JVM 上运行,可以使用常规的 Java 类/库,但它们比普通 Java 有所改进。

    【讨论】:

    • 不使用 Tomcat 有两个原因:1) Eclipse 中的 Tomcat 服务器适配器不允许非本地主机部署(我想点击一个按钮并从 ide 中部署)。 2) 更喜欢使用 Spring。
    • Spring 和 Tomcat 不是互斥的
    • @Ither - 在确定架构之前讨论 Spring 或其他框架还为时过早,IMO。
    • @prometheus:要从 Eclipse 中创建一个战争以部署在 tomcat 上,只需右键单击项目并从菜单中选择导出。
    【解决方案2】:

    原来有一些 maven 插件可以为我远程部署我的应用程序。最值得注意的是Cargo。这样,我可以保持所有初始工具/服务相同(Virgo、STS、Maven)。

    【讨论】:

      【解决方案3】:

      我最近实际上构建了类似的东西。我的应用程序可以在没有 servlet 容器或应用程序服务器的情况下运行。我选择在 Tomcat servlet 引擎中运行我的应用程序的原因是我可以向它添加一个 REST API 以轻松检索服务器状态信息,但我离题了。

      普通的 Eclipse J2EE 安装具有不错的 Tomcat 支持,因此在不了解您的品味和细节的情况下,我会选择它。

      要让您的应用程序自启动,您需要实现ServletContextListener 接口:

      public class ServerClass extends HttpServlet implements ServletContextListener {
      
        public void contextInitialized( ServletContextEvent event ) {
      
          // create and start a thread here.
      
        }
      
        public void contextDestroyed( ServletContextEvent event ) {
      
        }
      
      }    
      

      将以下内容添加到您的web.xml

      <listener>
          <listener-class>com.my.ServerClass</listener-class>
      </listener>
      

      您想使用哪个框架,只有您自己可以决定。您的问题是通用的,以便对此给出一个体面的答案。阅读一些并选择一个。普通的旧 Java 也可以,否则 Scala 可能是一个不错的替代选择。

      所以,回答你的问题:

      1. Tomcat servlet 引擎
      2. Vanilla J2EE Eclipse 版本
      3. 普通的旧 Java

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-06
        • 1970-01-01
        • 2019-04-09
        • 2012-12-22
        • 2012-11-02
        • 2019-04-08
        • 1970-01-01
        相关资源
        最近更新 更多