2014-03-25 59 views
0

我有一個JBoss SAR,我想用它打包一個WAR(一個Spring MVC Web應用程序)。原因是這個Web應用程序可以在部署此SAR的任何JBoss上使用。我在SAR的POM中添加了對WAR的依賴,並且看到它們在SAR中一起打包。但是,當我打開它的URL時,沒有找到該Web應用程序,而如果我單獨部署該Web應用程序,則它會打開。用JBoss SAR打包WAR

編輯 我正在嘗試將WAR和SAR打包到EAR中。我證實我可以單獨部署SAR和WAR,並且它們都以這種方式工作。我證實,當使用SAR封裝到EAR中時,WAR部署正確。但是,在封裝到EAR中時不會部署SAR。這裏是EAR的POM(標識符通用):

<groupId>com.company</groupId> 
<artifactId>my-ear</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>ear</packaging> 

<!-- name, url, properties omitted --> 

<dependencies> 
<!-- NOT Deploying --> 
<dependency> 
    <groupId>com.company</groupId> 
     <artifactId>MySAR</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <type>sar</type> 
</dependency> 
<!-- Deploys OK --> 
<dependency> 
    <groupId>com.company</groupId> 
     <artifactId>MyWAR</artifactId> 
     <version>1.0.0-BUILD-SNAPSHOT</version> 
     <type>war</type> 
</dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-ear-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <modules> 
        <sarModule> 
         <groupId>com.company</groupId> 
         <artifactId>MySAR</artifactId> 
        </sarModule> 
        <webModule> 
         <groupId>com.company</groupId> 
         <artifactId>MyWAR</artifactId> 
        </webModule> 
       </modules> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

回答

1

你不能這樣做。服務檔案(SAR)旨在定義被加載並獨立運行的組件。最明顯的形式是您在JMX域中部署的服務。

sar可以獨立部署,也可以捆綁在EAR中(請參見support in the maven ear plugin)。

但是,您無法在sar中部署Web應用程序。對於這些應該有兩個不同的部署單元,或者將它們打包到EAR中。

+0

謝謝 - 我添加了一個編輯。作爲EAR,戰爭部署,但特區不。 EAR的POM有什麼問題嗎? – roark

+0

無關,但您不需要在插件的配置中添加模塊,除非您想調整配置。這些由插件自動檢測。你的pom看起來不錯,否則沒有理由不起作用。你可以添加一些相關的JBoss日誌嗎? –

+0

我可能需要發佈一個新問題,EAR中的WAR和SAR現在都可以正常部署,所以你已經給出了正確的答案。長話短說,一個完全獨立的應用程序(WAR)會在SAR部署之前調用SAR提供的服務並引發錯誤。如果我先部署EAR,然後部署調用應用程序,一切都很好。我不想依賴那種手動干預,儘管有時JBoss會重新啓動。我不認爲有辦法控制部署順序? – roark