communicate between wars and jar inside ear

感情迁移 提交于 2019-12-24 20:16:20

问题


I'm new to creating ear and communicaton between wars and jar...

I was having two wars having completely independent functionality. Now I've to create a Ear, where two application have to work on same functionality, which is enclosed in a jar.But requirement is I must not include the jar in Pom.xml of both but make use of that jar, where all 3 are under single ear.is this is possible? I've tested Ear with 2 independent wars and it's working fine now how to achieve above I'm not getting this.
I'm using Maven with Jboss7.1.1.
I went through links like MessageHandler in JAR/WAR/EAR , https://stackoverflow.com/questions/1796255/tell-me-a-clear-differnece-between-ear-war-and-jar but got no idea about above problem.


回答1:


You can put multiple wars and jars into a ear and they can share the same classloader. This means that all the classes are accessible from all the jars/wars. i.e. it is as if all the classes / resouces are in one archive without the sub-packaging.

I am assuming this is what you mean by "communication between wars and jars".

EDIT: check Making an EAR with Maven for an example of the pom.xml for building an ear. In the example, there is one jar and one war but you could have any number of wars / jars.




回答2:


Hi got the solution >> here it is.. this is a pom.xml of ear project


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Test</groupId>
  <artifactId>Test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>ear</packaging> 

<dependencies>
    <!--Dependency for jar-->
    <dependency>
        <groupId>com.jar</groupId>
        <artifactId>com.jar</artifactId>
        <version>1.0</version>
        <type>war</type>
    </dependency>
    <!--Dependency for war1-->
    <dependency>
        <groupId>com.war2</groupId>
        <artifactId>com.war2</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>war</type>
    </dependency>       
    <!--Dependency for war2-->  
    <dependency>
        <groupId>com.war1</groupId>
        <artifactId>com.war1</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>war</type>
    </dependency>
</dependencies>

<build>
    <finalName>Project</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <finalName>MyEarFile</finalName>
                <version>5</version>
                <modules>
                    <!--Webmodule for war1-->
                    <webModule>
                        <groupId>com.war1</groupId>
                        <artifactId>com.war1</artifactId>
                        <uri>war1.war</uri>
                        <bundleFileName>war1.war</bundleFileName>
                    </webModule>

                    <!--Webmodule for war2-->
                    <webModule>
                        <groupId>com.war2</groupId>
                        <artifactId>com.war2</artifactId>
                        <uri>war2.war</uri>
                        <bundleFileName>war2.war</bundleFileName>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>




Note:: groupId and artifactId metioned here must match with groupId and artifactId mentioned in the project's pom.xml.
Also dependency of jar must be present in this i.e. ear's pom.xml and not in both app's pom.xml.
At time of maven install it automatically refers to jar's contents..


来源:https://stackoverflow.com/questions/14909213/communicate-between-wars-and-jar-inside-ear

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!