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">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></div><div class="h5">
<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></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>