aar和war文件有什么区别?

时间:2013-08-09 11:05:34

标签: axis2 war

我不知道什么是aar档案文件以及它们与战争的区别。我读到它们有点可兑换。什么时候使用哪一个?什么是利弊和限制。

2 个答案:

答案 0 :(得分:4)

.war是一个可以部署到任何Java EE应用程序服务器的Web存档。

.aar是一个特定的axis2工件,您可以在已部署Axis2标准Web应用程序的应用程序服务器中部署该工件。

您仍然可以使用“嵌入”模式在标准Web应用程序中部署Axis2应用程序(包括多个服务),如下所述:http://wso2.com/library/90。从.aar模式转换为嵌入模式包括提取所有文件并小心地将它们放在嵌入模式的正确位置。

.aar的Pro是@ renat-gilmanov回答的热门部署。

.war(嵌入式)的专业版是

  1. 在生产环境中更容易部署和管理:只需在任何应用程序服务器上部署一个.war,而不必遵循复杂的部署过程。
  2. 您可以在同一个.war中包含更多servlet,例如客户端应用程序。

答案 1 :(得分:3)

Axis Archive(.aar)

  

Axis 2服务打包为Axis Archive(.aar)。这是一个JAR   使用services.xml文件创建的文件(使用jar或zip实用程序创建)   包装在档案的META-INF目录中。

Example,StockQuoteService打包为StockQuoteService.aar时将具有以下结构:

./stock/StockQuoteService.class 
./META-INF/services.xml
  

在Axis2中部署服务非常简单;只需复制.aar   文件到axis2 Web中的axis2 / WEB-INF / services目录   应用程序在servlet容器中。在Tomcat的情况下,它将是   $ TOMCAT_HOME / web应用/的axis2 / WEB-INF /服务。

<强>原理

服务是一小块软件。请考虑以下事项:

  • 服务生命周期,因为您需要部署/重新部署/取消部署正在开发的服务或服务
  • 与每个部署的应用程序相关的容器开销
  • 由多个并行部署的Axis2实例引起的开销
  • 松耦合架构
  • ...

基本上,Axis2建议将* .aar视为轻量级应用程序。它共享相同的Axis2实例,可以轻松管理和重新部署,而无需停止整个业务。

让我们假设你开发了一个复杂的系统。作为一名优秀的开发人员和架构师,您决定使用服务作为最小的功能构建松耦合系统。分解进展顺利,所以你有100个服务。顺便说一下,这很好,因为你将能够:

  • 简化开发
  • 并行开发一些服务
  • 简化测试
  • ...

问题是您希望将所有这些服务作为单独的应用程序(战争)进行开发吗?我希望你不会。使用像Axis Archives这样的轻量级方法会更容易,更有效。

请注意,Axis允许您像Tomcat为应用程序一样管理服务生命周期。

enter image description here

  

在企业级方面,可用性是一个大问题   应用。即使很短的停机时间也可能很高   有害,所以重新启动服务器不是一个好选择。你需要   更新您的系统而不关闭它。这是热点   部署和热更新进来。

     

热部署是在部署新服务时的能力   系统启动并运行。举个例子,假设你有两个   服务 - service1和service2 - 启动并运行,并部署一个   名为service3的新服务,无需关闭系统。   部署service3是一种热门部署方案。

     

热门更新是对现有网络服务进行更改的功能   没有关闭系统。这是一个重要的特征和   在测试环境中需要。

The Axis2 Deployment model, Part 1: Six ways the Axis2 deployment model is more user friendly