Good point, probably unknown to many users......<br><br><div class="gmail_quote">2011/7/18 Carlo de Wolf <span dir="ltr">&lt;<a href="mailto:cdewolf@redhat.com">cdewolf@redhat.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<u></u>

  
    
  
  <div bgcolor="#ffffff" text="#000000">
    From the book of Java EE 6 Final Release EE.8.4.1 3e extra note:<br>
    Note that the presence of component-declaring annotations in shared
    artifacts, such as libraries in the library directory and libraries
    referenced by more than one module through Class-Path references,
    can have unintended and undesirable consequences and is not
    recommended.<br><font color="#888888">
    <br>
    Carlo</font><div><div></div><div class="h5"><br>
    <br>
    On 07/18/2011 04:23 PM, Francesco Marchioni wrote:
    <blockquote type="cite">&gt;iIRC we treat it like ear/lib<br>
      Absolutely clear. On the other hand, I&#39;ve observed that moving the
      EJB 3 library within the ear/lib folder trigger an unsatisfied
      dependency. Not sure if it&#39;s as per JEE specs, however I&#39;ve got
      some customers using GlassFish V3 that reported the same issue.
      The official reply was that because of annotations components in
      the shared lib are created twide and hence the deployment failure.<br>
      Thanks<br>
      Francesco<br>
      <br>
      <br>
      <div class="gmail_quote">2011/7/16 Jason Greene <span dir="ltr">&lt;<a href="mailto:jgreene@redhat.com" target="_blank">jgreene@redhat.com</a>&gt;</span><br>
        <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
          <div bgcolor="#FFFFFF">
            <div>iIRC we treat it like ear/lib<br>
              <br>
              Sent from my iPad</div>
            <div>
              <div>
                <div><br>
                  On Jul 13, 2011, at 7:51 AM, Carlo de Wolf &lt;<a href="mailto:cdewolf@redhat.com" target="_blank">cdewolf@redhat.com</a>&gt;
                  wrote:<br>
                  <br>
                </div>
                <blockquote type="cite">
                  <div> A Class-Path element in the META-INF/MANIFEST.MF
                    of an ear is invalid.<br>
                    You need to put it in the war.<br>
                    <br>
                    Carlo<br>
                    <br>
                    On 07/13/2011 01:12 PM, Francesco Marchioni wrote:
                    <blockquote type="cite">Did some more tests today.<br>
                      I&#39;ve turned the utility.jar JAVA module into an
                      EJB module and packed it<br>
                      <br>
                      enterprise.ear<br>
                      | <br>
                      |   utility.jar  (EJB Module)<br>
                      |   webapp.war   <br>
                      |<br>
                      | META-INF/MANIFEST.MF<br>
                      | META-INF/jboss-deployment-stucture.xml<br>
                      <br>
                      I&#39;ve forced class isolation so that classes cannot
                      be seen without a a Class-Path entry<br>
                       
&lt;ear-subdeployments-isolated&gt;true&lt;/ear-subdeployments-isolated&gt;<br>
                      <br>
                      Now the EJB classes from utility.jar are
                      successfully loaded by webapp.war --JUST--
                      Class-Path needs to be placed into the
                      subdeployment module  ( into webapp.war). When
                      Class-Path is placed in the EAR/
                      META-INF/MANIFEST.MF the EJB classes fail to be
                      loaded.<br>
                      <br>
                      Reproducing this test case is quite simple - I
                      wonder if this can be classified as a bug.<br>
                      Thanks<br>
                      Francesco<br>
                      <br>
                      <div class="gmail_quote">2011/7/12 Francesco
                        Marchioni <span dir="ltr">&lt;<a href="mailto:marchioni.francesco@gmail.com" target="_blank">marchioni.francesco@gmail.com</a>&gt;</span><br>
                        <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">Sure.<br>
                          <br>
                          The sample.Test servlet (WebApp1.war) attempts
                          to use the sample.Utility class (Utility.jar)
                          packaged <br>
                          <br>
                          <br>
                          16:23:58,576 ERROR
                          [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/WebApp1].[sample.Test]]

                          (http--127.0.0.1-8080-1) Servlet.service() for
                          servlet sample.Test threw exception:
                          java.lang.ClassNotFoundException:
                          sample.Utility from [Module
                          &quot;deployment.EnterpriseApp.ear.WebApp1.war:main&quot;
                          from Service Module Loader]<br>
                                  at
org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)<br>
                                  at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:358)<br>
                                  at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330)<br>
                                  at
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:307)<br>
                                  at
org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:101)<br>
                                  at sample.Test.doGet(Test.java:36)
                          [classes:]<br>
                                  at
                          javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]<br>
                                  at
                          javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]<br>
                                  at
                          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
                          [jboss-as-web-7.0.0.CR1.jar:7.0.0.CR1]<br>
                                  at
                          org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49)

                          [jboss-as-jpa-7.0.0.CR1.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)

                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
                          [jbossweb-7.0.0.CR4.jar:7.0.0.CR1]<br>
                                  at
                          java.lang.Thread.run(Thread.java:662)
                          [:1.6.0_24]<br>
                          <br>
                          <br>
                          META-INF/MANIFEST.MF is<br>
                          <br>
                          Manifest-Version: 1.0<br>
                          Class-Path: Utility.jar<br>
                          <br>
                          (I&#39;ve checked also without  Manifest-Version:
                          1.0 declaration)<br>
                          I guess tomorrow with some skull bash, will
                          get it to work :-) )
                          <div>
                            <div> <br>
                              <div class="gmail_quote"><br>
                                <br>
                                <br>
                                2011/7/12 Jaikiran Pai <span dir="ltr">&lt;<a href="mailto:jpai@redhat.com" target="_blank">jpai@redhat.com</a>&gt;</span><br>
                                <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex"> Okay. Can
                                  you please post the entire exception
                                  stacktrace? That&#39;ll give<br>
                                  us an hint on what might be wrong.
                                  Also please post the exact contents<br>
                                  of the .ear/META-INF/MANIFEST.MF file.<br>
                                  <br>
                                  -Jaikiran<br>
                                  <div>On Tuesday 12 July 2011 06:51 PM,
                                    Francesco Marchioni wrote:<br>
                                    &gt; &gt;Just to be clear, did that
                                    newline fix the issue?<br>
                                    &gt; Hi Jaikiran. No that didn&#39;t fix
                                    it. On the other hand, the library
                                    is<br>
                                    &gt; correctly picked up in the
                                    EAR/lib folder, just not at the root
                                    of the<br>
                                    &gt; archive.<br>
                                    &gt;<br>
                                  </div>
                                  &gt; 2011/7/12 Jaikiran Pai &lt;<a href="mailto:jpai@redhat.com" target="_blank">jpai@redhat.com</a>
                                  &lt;mailto:<a href="mailto:jpai@redhat.com" target="_blank">jpai@redhat.com</a>&gt;&gt;<br>
                                  <div>
                                    <div>&gt;<br>
                                      &gt;     On Tuesday 12 July 2011
                                      05:22 PM, Francesco Marchioni
                                      wrote:<br>
                                      &gt;     &gt; yes, thanks I&#39;ve
                                      added the newline at the end of
                                      the Class-Path.<br>
                                      &gt;     Just to be clear, did
                                      that newline fix the issue?<br>
                                      &gt;<br>
                                      &gt;     -Jaikiran<br>
                                      &gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt; What I find odd, is
                                      that adding to to
                                      jboss-deployment-structure.xml<br>
                                      &gt;     &gt; the resources
                                      element, deployment fails because
                                      the Utility<br>
                                      &gt;     module has<br>
                                      &gt;     &gt; been already
                                      loaded.....<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;
                                      &lt;jboss-deployment-structure&gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt; &lt;deployment&gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt; &lt;resources&gt;<br>
                                      &gt;     &gt; &lt;resource-root
                                      path=&quot;Utility.jar&quot; /&gt;<br>
                                      &gt;     &gt; &lt;/resources&gt;<br>
                                      &gt;     &gt; &lt;/deployment&gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;
                                      &lt;/jboss-deployment-structure&gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt; Caused by:
                                      org.jboss.msc.service.DuplicateServiceException:
                                      Service<br>
                                      &gt;     &gt;<br>
                                      &gt;    
jboss.module.information.service.&quot;deployment.EnterpriseApp.ear.Utility.jar&quot;.main<br>
                                      &gt;     &gt; is already
                                      registered<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt; ......walking in the
                                      dark........<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt; 2011/7/12 Stuart
                                      Douglas &lt;<a href="mailto:stuart.w.douglas@gmail.com" target="_blank">stuart.w.douglas@gmail.com</a><br>
                                      &gt;     &lt;mailto:<a href="mailto:stuart.w.douglas@gmail.com" target="_blank">stuart.w.douglas@gmail.com</a>&gt;<br>
                                      &gt;     &gt; &lt;mailto:<a href="mailto:stuart.w.douglas@gmail.com" target="_blank">stuart.w.douglas@gmail.com</a><br>
                                      &gt;     &lt;mailto:<a href="mailto:stuart.w.douglas@gmail.com" target="_blank">stuart.w.douglas@gmail.com</a>&gt;&gt;&gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;     This should
                                      work, and there are tests for this
                                      in the test<br>
                                      &gt;     suite.<br>
                                      &gt;     &gt;     Are you missing
                                      a newline at the end of the
                                      Class-Path: line in<br>
                                      &gt;     &gt;     the manifest by
                                      any chance?<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;     For some really
                                      annoying reason the JDK manifest
                                      processing<br>
                                      &gt;     stuff<br>
                                      &gt;     &gt;     does not work
                                      unless there is newline at the end
                                      of the file.<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;     Stuart<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;     On 12/07/2011,
                                      at 7:06 PM, Francesco Marchioni
                                      wrote:<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt; &gt; Dear devs,<br>
                                      &gt;     &gt; &gt; I&#39;m testing
                                      .ear classloading with utility
                                      classes packaged in<br>
                                      &gt;     &gt;     the Enterprise
                                      Archive.<br>
                                      &gt;     &gt; &gt; The following
                                      case test fails, so I&#39;m wondering
                                      if it&#39;s my<br>
                                      &gt;     &gt;     misundertanding
                                      or a bug:<br>
                                      &gt;     &gt; &gt;<br>
                                      &gt;     &gt; &gt; application.ear<br>
                                      &gt;     &gt; &gt; |<br>
                                      &gt;     &gt; &gt; |
                                       Webapplication.war<br>
                                      &gt;     &gt; &gt; |  Utility.jar<br>
                                      &gt;     &gt; &gt; |<br>
                                      &gt;     &gt; &gt; |
                                       META-INF/MANIFEST.MF<br>
                                      &gt;     &gt; &gt;<br>
                                      &gt;     &gt; &gt; Manifest file
                                      contains the Java EE compliant
                                      dependency to the<br>
                                      &gt;     &gt;     class
                                      Utility.jar<br>
                                      &gt;     &gt; &gt; Class-Path:
                                      Utility.jar<br>
                                      &gt;     &gt; &gt;<br>
                                      &gt;     &gt; &gt; However, the
                                      Webapplication fails to load the
                                      classes from<br>
                                      &gt;     &gt;     Utility.jar,
                                      which are instead correctly
                                      pickedup if I move them<br>
                                      &gt;     &gt;     into the ear&#39;s
                                      lib folder.<br>
                                      &gt;     &gt; &gt;<br>
                                      &gt;     &gt; &gt; As side note -
                                      I&#39;ve tried also stating isolated
                                      deployments to<br>
                                      &gt;     &gt;     false, in
                                      jboss-deployment-structure.xml
                                      (which should default)<br>
                                      &gt;     &gt;     without success:<br>
                                      &gt;     &gt; &gt;
                                      &lt;jboss-deployment-structure&gt;<br>
                                      &gt;     &gt; &gt;
&lt;ear-subdeployments-isolated&gt;false&lt;/ear-subdeployments-isolated&gt;<br>
                                      &gt;     &gt; &gt;
                                      &lt;/jboss-deployment-structure&gt;<br>
                                      &gt;     &gt; &gt;<br>
                                      &gt;     &gt; &gt; Any suggestion?<br>
                                      &gt;     &gt; &gt; Thanks a lot<br>
                                      &gt;     &gt; &gt; Francesco<br>
                                      &gt;     &gt; &gt;
                                      _______________________________________________<br>
                                      &gt;     &gt; &gt; jboss-as7-dev
                                      mailing list<br>
                                      &gt;     &gt; &gt; <a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a><br>
                                      &gt;     &lt;mailto:<a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a>&gt;<br>
                                      &gt;     &lt;mailto:<a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a><br>
                                      &gt;     &lt;mailto:<a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a>&gt;&gt;<br>
                                      &gt;     &gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;<br>
                                      &gt;     &gt;
                                      _______________________________________________<br>
                                      &gt;     &gt; jboss-as7-dev
                                      mailing list<br>
                                      &gt;     &gt; <a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a>
                                      &lt;mailto:<a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a>&gt;<br>
                                      &gt;     &gt; <a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
                                      &gt;<br>
                                      &gt;    
                                      _______________________________________________<br>
                                      &gt;     jboss-as7-dev mailing
                                      list<br>
                                      &gt;     <a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a>
                                      &lt;mailto:<a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a>&gt;<br>
                                      &gt;     <a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
                                      &gt;<br>
                                      &gt;<br>
                                      &gt;<br>
                                      &gt;<br>
                                      &gt;
                                      _______________________________________________<br>
                                      &gt; jboss-as7-dev mailing list<br>
                                      &gt; <a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a><br>
                                      &gt; <a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
                                      <br>
_______________________________________________<br>
                                      jboss-as7-dev mailing list<br>
                                      <a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a><br>
                                      <a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
                                    </div>
                                  </div>
                                </blockquote>
                              </div>
                              <br>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                      <pre><fieldset></fieldset>
_______________________________________________
jboss-as7-dev mailing list
<a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a>
</pre>
                    </blockquote>
                    <br>
                  </div>
                </blockquote>
                <blockquote type="cite">
                  <div><span>_______________________________________________</span><br>
                    <span>jboss-as7-dev mailing list</span><br>
                    <span><a href="mailto:jboss-as7-dev@lists.jboss.org" target="_blank">jboss-as7-dev@lists.jboss.org</a></span><br>
                    <span><a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a></span><br>
                  </div>
                </blockquote>
              </div>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br>