Java EE 5开发环境

时间:2009-12-16 14:56:14

标签: java oracle10g weblogic-10.x java-ee-5

我有一个客户已经在生产中有一些应用程序,因此已经就下一个项目的生产环境做出了一些决定:

  • Sun iPlanet 6.1 SP7(带apache)
  • JDK 1.6
  • Oracle Weblogic 10 MP3
  • Oracle 10g
  • 1024位SSL

他们还有一些针对网络应用的企业标准:

  • Tomcat的
  • Struts的
  • 与Safari,Firefox,IE6,IE7的兼容性

我还被告知这个应用程序可能不需要完整的Java EE 5环境(可能只是一个Web容器),但需要通过客户端EJB等与单独的weblogic实例上托管的应用程序进行通信。对其他公司服务执行各种Web服务调用。

我被赋予了一个任务,就这个新团队的开发和测试环境看起来会做出一些决定(很小,可能是2到3人,包括我,但可能会在未来几个月内增长)。我想创建一个人们可以使用他们喜欢的IDE并在localhost上拥有良好开发经验的人,但仍然可以在测试环境中顺利部署,然后再到生产环境。我的想法是在本地工作站上http很好但是集成测试服务器看起来应该与生产服务器完全一样,并且所有流量都应该是https,以确保我们能够准确地描绘出什么样的产品。

了解开发人员本地工作站的变化很大,并且可能在他们的本地工作站上运行Mac OS X 10.6(Snow Leopard)或Windows 7,但是还需要指出一个常见的测试服务器:什么是技术堆栈会给我们一条从本地开发,测试到生产的良好平滑路径吗?

编辑:对不起,当我说技术堆栈时,我的意思是例如Ant + JBoss + Tomcat + Oracle XE与Maven + Geronimo + Derby。基本上是我们需要在每台开发机器和测试服务器上安装的具体规范实现列表,它们为我们提供了灵活的开发环境,并且平稳过渡到测试和生产环境。

EDIT2:可能值得一提的是,这个应用程序,如果它需要保留任何信息(我假设成为案例),无论它是什么绝对不会复杂。很可能它将类似于一个基本的产品数据库。

3 个答案:

答案 0 :(得分:4)

我会选择:

  1. Hudson 用于夜间构建(或每次签入)
  2. 源代码管理的
  3. Mercurial Subversion (适用于Windows和Mac)
  4. 春天,春天,春天。是的我很认真,Spring解决了更多的问题,而不仅仅是依赖注入;如安全性,批处理,事务处理,系统集成。
  5. ORM的
  6. EclipseLink 。它的许多高级功能(Hibernate缺乏)经常拯救我(就像正常的存储过程支持一样)。
  7. 轻量级容器,如 Jetty,Tomcat 树脂。如果你使用像 Geronimo JBoss 这样的重量较慢的东西,你就会开始自杀。
  8. 合并/差异工具的
  9. DeltaWalker (再次适用于所有平台)。
  10. 如果您要使用高级数据库功能,请转到 OracleXE (以及 SQLDeveloper )。两者都是很好的工具。如果没有,那么像 H2 Derby 之类的东西就可以了。
  11. 用于单元测试/模拟的
  12. JUnit (或 TestNG) Mockito
  13. 请不要使用 Struts 。说真的,至少要使用 Struts2 ,或者最好是 JSF2,Stripes GWT
  14. JTrac,RedMine FogBugz
  15. 这样的错误追踪者
  16. Selenium 进行集成测试
  17. Sonar代码质量
  18. 如果您打算使用不同的IDE,那么 Maven 可能是一个好主意,因为它允许从pom.xml配置每个IDE(在IntelliJ / NetBeans中运行良好)。但我能给你的最好建议就是这个。

    • 选择您已经了解并拥有丰富经验的人。你不会在一夜之间从Struts过渡到JSF2。
    • 获得你能得到的最好的工具,认真的免费东西并不总是可行的方式(虽然经常是这样)。

    快乐的黑客攻击

答案 1 :(得分:1)

当你说“技术堆栈”时,你真正不清楚究竟是什么问题,你的意思是服务器,库,构建工具吗?无论如何,这里有一些轻率的建议:

  • Hudson持续整合
  • 除非你确实需要,否则请避免使用maven。它引诱你像一个警报器,它承诺声明性依赖和约定优于配置,但实践与理论非常不同
  • 尽可能使用Spring而不是标准Java SE / Java EE API。除了更简单的API之外,它还有助于测试性和AOP功能,这比直接使用AspectJ要容易得多。当然,它还提供了支持松散耦合的依赖注入
  • Hibernate for ORM,或者如果您的持久性要求非常简单,那么Spring-JDBC就足够了

答案 2 :(得分:0)

测试环境应该完全复制生产。还要对测试环境进行性能测试。如果硬件是一个问题,集群中的服务器数量需要限制,那么在测试中创建的服务器数量会减少,但会复制与产品相同的环境,即说iplanet(apache) )+ weblogic + oracle db等......

就本地环境而言,您可以使用Tomcat(因为您只需要Web容器),对于ejb客户端,您可以捆绑jar并进行远程调用(如果您正在远程调用某个远程应用程序)如果你通过本地ejbs进行本地通话,那么你将不得不在本地盒子上使用weblogic进行开发。

尝试使用相同的IDE(尽管它主要是开发人员的选择)。就操作系统而言,它并不重要,因为如果您使用的是兼容的IDE,那么您将只从中构建代码。

还要确保IDE与tomcat(如果您使用它)或weblogic紧密结合,以便在调试模式下运行代码。

一个非常重要的事情,首先决定代码结构,然后在版本控制中检查,以便用户在任何ide中签入/签出相同的结构。因此,所有开发人员共享相同的结构。 在每个版本中对cvs或版本控制中的代码进行分支,然后从头部进行签出。同样非常重要的是使用单个构建文件并维护设置文档以在本地框上构建环境。 另外关于使用框架选择你最熟悉的编码和维护。这样你将减少代码中的错误数量。现在大多数人使用Spring / Hibernate组合,但这取决于它是否适合你的项目。 希望这会有所帮助。