<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Re: How to stop my WAR loading JBoss's provided 3rd party classes?
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/hostalp">Petr H</a> in <i>JBoss Microcontainer</i> - <a href="http://community.jboss.org/message/578484#578484">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><blockquote class="jive-quote">Validator should be bundled as well.</blockquote><p>The bad thing is that it was behaving the same way no matter if Validator was bundled or not.</p><p>And still, I don't need it in the app. On other app. servers I can run the same app without the Validator anywhere on classpath.</p><blockquote class="jive-quote"><p>If the Hibernate was/is part of war' lib/ dir then this makes sense.</p><p>If not, then it's strange. :-)</p></blockquote><p> It was in ear/lib, referenced from war via MANIFEST.MF Class-Path entry.</p><blockquote class="jive-quote">The war' parent classloader is (unless explicity set differently) ear' root classloader.<p>And of course this classloader -- via jboss-classloading-domain.xml -- is in its own filtered domain.</p></blockquote><p>Based on my recent findings this seems to be only partially true.<br/>If I use the actual name of ear file as ear-level domain name then it seems to be true.<br/>If I use something else (in ear/META-INF/jboss-classloading.xml) then it looks like war classloaders don't reflect this change and still work with ear file name so I have to setup their own jboss-classloading.xml<br/>I think the war classloaders should pick up the change done on ear level by default but they seem like they don't.<br/> <br/>Anyway I still can't get the filtering to work even though I use the ear file name as domain name in ear-level jboss-classloading-domain.xml - the Hibernate Validator stuff from the JBoss is still loaded.</p><p>Also I noticed that the particular class org.hibernate.validator.ClassValidator (java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.&lt;init&gt;(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager)) comes from the common/lib/hibernate-validator-legacy.jar and isn't bundled in our app.<br/>The particular code in org.hibernate.cfg.AnnotationConfiguration class (3.5.6.Final) is:<br/>&#160;&#160; try {<br/>&#160;&#160; Class classValidator = ReflectHelper.classForName(<br/>&#160;&#160;&#160;&#160; "org.hibernate.validator.ClassValidator", this.getClass()<br/>&#160;&#160; );<br/>&#160;&#160; Class messageInterpolator = ReflectHelper.classForName(<br/>&#160;&#160;&#160;&#160; "org.hibernate.validator.MessageInterpolator", this.getClass()<br/>&#160;&#160; );<br/>&#160;&#160; validatorCtr = classValidator.getDeclaredConstructor(<br/>&#160;&#160;&#160;&#160; Class.class, ResourceBundle.class, messageInterpolator, Map.class, ReflectionManager.class<br/>&#160;&#160; );<br/>where the last expression throws that NoSuchMethodException (looks like there's an incompatibility between later hibernate annotations and hibernate-validator-legacy because there's really no such constructor in ClassValidator). That gives me an idea - does the JBoss Class Filter still give an access to a particular class (in JBoss libs) when there's a filter match but the class isn't in the app?<br/>Maybe the problem here is because there's no such class in the app so even though the filter is setup properly it doesn't have any effect here - beceuse it's just a "preference" filter and not really a "blocking" one. <br/> <br/>I'll try some more configurations but I really doubt that I'll be able to get it to work - maybe I'll try to remove hibernate-validator-legacy.jar from JBoss libs.</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/578484#578484">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Microcontainer at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2114">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>