将Java SE应用程序作为服务与Java EE应用程序最佳实践集成

时间:2014-11-06 01:00:48

标签: java tomcat java-ee design-patterns scalability

我刚刚开始从Java SE过渡到EE,我想知道以下问题的最佳实践。

我有一个Java SE应用程序,我想在网上发布。 Web / EE部分已使用Windows7 / Apache Tomcat和标准servlet / JSP进行设置。对于Java应用程序,它实际上是一个相互依赖的源文件的集合。

我的计划是创建一个可执行的.jar文件,该文件将由servlet调用,输出流和过滤的错误流将被移交给在线用户。

我想到的因素是(按优先顺序排列):

  • .jar调用的开销
  • 因此,高流量处理,虽然它是一种学术工具
  • 安全性,因为调用是结构化用户输入 作为命令行参数传递给.jar(我正在谈论脚本 注入类型漏洞作为输入)
  • 模块化,因为Java应用程序可能会经历多次修订,因此如果应用程序和Web应用程序之间存在更简单的耦合,我会在没有太多上述开销的情况下使用它。

所以我的问题是上述计划是否正确,这样做的正确方法是什么?还有其他人可以想到我应该关注的任何其他因素吗?

任何输入或指示都会非常感激!

修改:: 所以以前我用WIn7 / Apache HTTP / PHP完成了这个项目,其中PHP将生成一个带有用户输入的唯一文件名,并将其发送到带有exec函数调用和文件名作为命令行参数的jar程序。该程序将生成一个类似的命名输出文件,PHP将获取该输出文件的内容并将其返回给用户。问题是每个exec调用都会实例化一个新的JVM实例,如果这个站点有很多用户,服务器会抓取/崩溃处理这些请求。这就是我移动到本机Java服务器的原因。我也有同样的想法,除了我希望程序作为一个单元(jar),以便任何新版本更容易部署。现在这是一个暂定的计划。这就是为什么我的问题要求在这种情况下如何应对的最佳实践。

1 个答案:

答案 0 :(得分:2)

答案很简单:正确的做法。

如果您有逻辑可用作Java SE代码,例如作为JAR文件,您在大多数情况下只需在Java EE Web应用程序中使用它。

因此,如果您已准备好servlet,请让它使用您的JAR功能,并在JSP中提供方法调用的结果。

旁注:如果你开始学习Java EE,不再需要使用JSP了 - 今天的默认视图技术是Facelets(XHTML页面),只需检查Java EE 7 tutorial即可。主题。