For further classloader debugging you can enable the WebSphere Classloader
viewer service which will show you the exact set of classes loaded in your
app. I also suggest enabling verbose classloading.
In order to reload the class in WAS, the application classloader needs to
be unloaded and reloaded back again. Not sure how Ext-Scripting achieves
this.
If you are interested in further deep dive debugging these are the steps ...


   -

      MustGather: http://www-01.ibm.com/support/docview.wss?uid=swg21196187
      -

         Diagnostic Trace > com.ibm.ws.classloader.*=all
         -

         JVM > Verbose class loading
         -

         JVM > Custom Properties -> ws.ext.debug=true


   -

      Verbose class loading:
      
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.multipl<http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/urun_rconfproc_jvm.html>
      
atform.doc/info/ae/ae/urun_rconfproc_jvm.html<http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/urun_rconfproc_jvm.html>
      -

         Prints each class that was loaded and the absolute path of the JAR.


   -

      ws.ext.debug goes to native_stdout.log or SystemOut.log
      -

         See also ws.ext.dirs in SystemOut.log which is the classpath
         passed into com.ibm.ws.bootstrap.ExtClassLoader (which
details of which are
         printed due to ws.ext.debug).
         -

      On the IBM JDK, use -Dibm.cl.verbose=classpattern
      -

         classpattern example: com.ibm.msg.client.commonservices.trace*
         -

            Takes any regular expression.
            -

         Normally goes to native_stdout.log, but sometimes goes to
         SystemOut.log.
         -

         Shows verbose debug for sun.misc.Launcher$ExtClassLoader and
         sun.misc.Launcher$AppClassLoader classloaders.
         -

            Remember that just because a class is not found in these two
            classloaders, does not mean it is not found at all. After
it is not found
            in AppClassLoader, it may delegate up, for example to
            com.ibm.ws.bootstrap.ExtClassLoader, and that's why
classloader trace, and
            for com.ibm.ws.bootstrap.ExtClassLoader in particular,
ws.ext.debug are
            useful.
            -

      From the DMGR, use the Class Loader Viewer under Troubleshooting.
      Drill down to a particular application in a server, and you can
export the
      table as XML to send to others.
      -

         There are two tabs, Hierarchy and Search order. View both and
         export both.
         -

         By default, the class loader viewer just shows which JARs get
         loaded into which classloader. You can also view which
classes get loaded
         into which classloader by clicking Table View > Enable the
class loader
         viewer service to view the list of classes loaded. Click here
to enable. >
         Enable service at server startup > Restart the server
         -

            This can be enabled/disabled in Application Server > Additional
            Properties > Class loader viewer service
            -

         Common search order (#6 = EAR, #7 = WAR):
         -

            1 - JDK Extension - sun.misc.Launcher$ExtClassLoader
            -

            2 - JDK Application - sun.misc.Launcher$AppClassLoader
            -

            3 - OSGI -
            org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader
            -

            4 - Extension - com.ibm.ws.bootstrap.ExtClassLoader
            -

            5 - WAS Protection Class Loader -
            com.ibm.ws.classloader.ProtectionClassLoader
            -

            6 - Module - com.ibm.ws.classloader.CompoundClassLoader
            -

            7 - Module – com.ibm.ws.classloader.CompoundClassLoader


   -

      Background
      -


         
http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/topic/com.ibm.java.doc.diagnostics.50/diag/understanding/class_loader.html
         -


         
http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/topic/com.ibm.java.doc.diagnosti<http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/topic/com.ibm.java.doc.diagnostics.50/diag/tools/javadump_tags_classes.html>
         
cs.50/diag/tools/javadump_tags_classes.html<http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/topic/com.ibm.java.doc.diagnostics.50/diag/tools/javadump_tags_classes.html>


   -

      http://www-128.ibm.com/developerworks/java/library/j-dclp1/
      -

      http://www-128.ibm.com/developerworks/java/library/j-dclp2.html
      -

      http://www-128.ibm.com/developerworks/java/library/j-dclp3/
      -

      http://www-128.ibm.com/developerworks/java/library/j-dclp4/
      -

      http://www.redbooks.ibm.com/redpapers/pdfs/redp4307.pdf
      -


      
http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer.html

-cheers,
Rohit


On Tue, Sep 4, 2012 at 2:38 PM, Kito Mann <[email protected]> wrote:

> On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <[email protected]> wrote:
>
> > WAS 8 is free for developers. No license needed.
> > See  http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/
> >
> > What is the exact symptom of the problem ?
> >
>
> Basically, Ext-Scripting thinks it is re-loading classes, but it has no
> affect on the runtime. It's almost like it's using the wrong class loader
> or something.
>
> >
> > -cheers,
> > ROhit
> >
> >
> > On Tue, Sep 4, 2012 at 2:30 PM, Werner Punz <[email protected]>
> wrote:
> >
> > > The config looks correct to me
> > > I guess that we will have an incompatibility with WAS then.
> > > I have tested the code only on servlet runners like tomcat and Jetty.
> > > I will try to get hold on a WAS 8.0 testlicense to debug that out.
> > > Won´t happen this week anymore though due to time constraints.
> > > Are you running in an EAR environment or simple WAR environment?
> > >
> > >
> > >
> > > Werner
> > >
> > > Am 04.09.12 17:02, schrieb Kito Mann:
> > >
> > >  Hello Werner,
> > >>
> > >> Thanks for looking into this. Here is the web.xml. I just realized
> that
> > >> it's set to Servlet 2.5 instead of 3.0; could that be the problem?
> > >>
> > >> <?xml version="1.0" encoding="UTF-8"?>
> > >> <web-app xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<
> > http://www.w3.org/2001/XMLSchema-instance>
> > >> "
> > >>      xmlns="http://java.sun.com/**xml/ns/javaee<
> > http://java.sun.com/xml/ns/javaee>"
> > >> xmlns:web="
> > >> http://java.sun.com/xml/ns/**javaee/web-app_2_5.xsd<
> > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd>
> > >> "
> > >>      xsi:schemaLocation="http://**java.sun.com/xml/ns/javaee<
> > http://java.sun.com/xml/ns/javaee>
> > >> http://java.sun.com/xml/ns/**javaee/web-app_2_5.xsd<
> > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd>
> > >> "
> > >>      id="WebApp_ID" version="2.5">
> > >>
> > >>      <filter>
> > >>          <filter-name>scriptingFilter</**filter-name>
> > >>
> > >> <filter-class>org.apache.**myfaces.extensions.scripting.**servlet.**
> > >> ScriptingServletFilter</**filter-class>
> > >>      </filter>
> > >>      <filter-mapping>
> > >>          <filter-name>scriptingFilter</**filter-name>
> > >>          <url-pattern>/faces/*</url-**pattern>
> > >>          <dispatcher>REQUEST</**dispatcher>
> > >>          <dispatcher>FORWARD</**dispatcher>
> > >>          <dispatcher>INCLUDE</**dispatcher>
> > >>          <dispatcher>ERROR</dispatcher>
> > >>      </filter-mapping>
> > >>      <context-param>
> > >>          <description> Initializes the plugins for our scripting
> support
> > >> </description>
> > >>          <param-name>org.apache.**myfaces.FACES_INIT_PLUGINS</**
> > >> param-name>
> > >>
> > >> <param-value>org.apache.**myfaces.extensions.scripting.**servlet.**
> > >> StartupServletContextPluginCha**inLoader</param-value>
> > >>      </context-param>
> > >>
> > >>      <context-param>
> > >>          <description>Additional comma separated loader paths to allow
> > >> direct editing on the sources directory instead of the deployment dir
> > >> </description>
> > >>
> > >> <param-name>org.apache.**myfaces.extensions.scripting.**
> > >> java.LOADER_PATHS</param-name>
> > >>          <param-value>C:/workspaces/**src</param-value>
> > >>      </context-param>
> > >>
> > >>      <context-param>
> > >>          <param-name>**log4jConfigLocation</param-**name>
> > >>          <param-value>/WEB-INF/log4j.**properties</param-value>
> > >>      </context-param>
> > >>
> > >>      <context-param>
> > >>          <param-name>javax.faces.**PROJECT_STAGE</param-name>
> > >>          <param-value>Development</**param-value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
> >  <param-name>javax.faces.**FACELETS_REFRESH_PERIOD</**param-name>
> > >>          <param-value>1</param-value>
> > >>      </context-param>
> > >>      <context-param>
> > >>          <param-name>javax.faces.STATE_**SAVING_METHOD</param-name>
> > >>          <param-value>server</param-**value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
> > >> <param-name>javax.faces.**validator.DISABLE_DEFAULT_**
> > >> BEAN_VALIDATOR</param-name>
> > >>          <param-value>true</param-**value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
> > >> <param-name>org.apache.**myfaces.NUMBER_OF_VIEWS_IN_**
> > >> SESSION</param-name>
> > >>          <param-value>25</param-value>
> > >>      </context-param>
> > >>      <context-param>
> > >>          <param-name>javax.faces.**FACELETS_LIBRARIES</param-**name>
> > >>          <param-value>/WEB-INF/custom.**taglib.xml</param-value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
>  <param-name>javax.faces.**VALIDATE_EMPTY_FIELDS</param-**name>
> > >>          <param-value>true</param-**value>
> > >>      </context-param>
> > >>      <context-param>
> > >>          <param-name>javax.faces.**PARTIAL_STATE_SAVING</param-**name>
> > >>          <param-value>true</param-**value>
> > >>      </context-param>
> > >>
> > >>      <context-param>
> > >>          <param-name>primefaces.THEME</**param-name>
> > >>          <param-value>none</param-**value>
> > >>      </context-param>
> > >>
> > >>      <context-param>
> > >>          <param-name>primefaces.SUBMIT<**/param-name>
> > >>          <param-value>partial</param-**value>
> > >>      </context-param>
> > >>
> > >>      <context-param>
> > >>
> > >> <param-name>org.apache.**myfaces.SERIALIZE_STATE_IN_**
> > >> SESSION</param-name>
> > >>          <param-value>false</param-**value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
> > >>
> > <param-name>org.apache.**myfaces.COMPRESS_STATE_IN_**SESSION</param-name>
> > >>          <param-value>false</param-**value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
> > >> <param-name>org.apache.**myfaces.NUMBER_OF_SEQUENTIAL_**
> > >> VIEWS_IN_SESSION</param-name>
> > >>          <param-value>7</param-value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
> > >> <param-name>org.apache.**myfaces.USE_FLASH_SCOPE_PURGE_**
> > >> VIEWS_IN_SESSION</param-name>
> > >>          <param-value>true</param-**value>
> > >>      </context-param>
> > >>      <context-param>
> > >>          <param-name>org.apache.**myfaces.ADD_RESOURCE_CLASS</**
> > >> param-name>
> > >>
> > >> <param-value>org.apache.**myfaces.component.html.util.**
> > >> StreamingAddResource</param-**value>
> > >>      </context-param>
> > >>      <context-param>
> > >>
>  <param-name>org.apache.**myfaces.USE_ENCRYPTION</param-**name>
> > >>          <param-value>false</param-**value>
> > >>      </context-param>
> > >>      <filter>
> > >>          <display-name>LoginFilter</**display-name>
> > >>          <filter-name>LoginFilter</**filter-name>
> > >>          <filter-class>
> > >>
> > >> gov.nh.dhhs.newheights.**presentation.framework.**
> > >> application.filter.LoginFilter
> > >>          </filter-class>
> > >>      </filter>
> > >>      <filter-mapping>
> > >>          <filter-name>LoginFilter</**filter-name>
> > >>          <servlet-name>Faces Servlet</servlet-name>
> > >>      </filter-mapping>
> > >>      <listener>
> > >>          <listener-class>
> > >>
> > >> org.apache.myfaces.webapp.**StartupServletContextListener<**
> > >> /listener-class>
> > >>      </listener>
> > >>      <servlet>
> > >>          <servlet-name>Faces Servlet</servlet-name>
> > >>          <servlet-class>javax.faces.**webapp.FacesServlet</servlet-**
> > >> class>
> > >>          <load-on-startup>1</load-on-**startup>
> > >>      </servlet>
> > >>      <servlet-mapping>
> > >>          <servlet-name>Faces Servlet</servlet-name>
> > >>          <url-pattern>/faces/*</url-**pattern>
> > >>      </servlet-mapping>
> > >>      <servlet-mapping>
> > >>          <servlet-name>Faces
> > >>              Servlet
> > >>          </servlet-name>
> > >>          <url-pattern>*.jsf</url-**pattern>
> > >>      </servlet-mapping>
> > >>      <servlet-mapping>
> > >>          <servlet-name>Faces Servlet</servlet-name>
> > >>          <url-pattern>*.faces</url-**pattern>
> > >>      </servlet-mapping>
> > >>      <servlet-mapping>
> > >>          <servlet-name>Faces Servlet</servlet-name>
> > >>          <url-pattern>*.xhtml</url-**pattern>
> > >>      </servlet-mapping>
> > >>      <mime-mapping>
> > >>          <extension>png</extension>
> > >>          <mime-type>image/png</mime-**type>
> > >>      </mime-mapping>
> > >>      <login-config>
> > >>          <auth-method>FORM</auth-**method>
> > >>          <realm-name>developinjava</**realm-name>
> > >>          <form-login-config>
> > >>              <form-login-page>/login.xhtml<**/form-login-page>
> > >>              <form-error-page>/error.jspx</**form-error-page>
> > >>          </form-login-config>
> > >>      </login-config>
> > >>      <error-page>
> > >>          <exception-type>java.lang.**Exception</exception-type>
> > >>          <location>/faces/error.xhtml</**location>
> > >>      </error-page>
> > >>      <error-page>
> > >>          <error-code>500</error-code>
> > >>          <location>/faces/error.xhtml</**location>
> > >>      </error-page>
> > >>      <session-config>
> > >>          <session-timeout>30</session-**timeout>
> > >>      </session-config>
> > >> </web-app>
> > >> ___
> > >>
> > >> Kito D. Mann | @kito99 | Author, JSF in Action
> > >> Virtua, Inc. | http://www.virtua.com | JSF/Java EE training and
> > >> consulting
> > >> http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info |
> > >> @jsfcentral
> > >> +1 203-404-4848 x246
> > >>
> > >> * Listen to the latest headlines in the JSF and Java EE newscast: *
> > >> http://blogs.jsfcentral.com/**JSFNewscast/*<
> > http://blogs.jsfcentral.com/JSFNewscast/*>
> > >> * Sign up for the JSFCentral Newsletter: http://oi.vresp.com/?fid=**
> > >> ac048d0e17 <http://oi.vresp.com/?fid=ac048d0e17>
> > >>
> > >>
> > >>
> > >> On Mon, Sep 3, 2012 at 7:59 AM, Werner Punz <[email protected]>
> > >> wrote:
> > >>
> > >>  Am 03.09.12 13:52, schrieb Werner Punz:
> > >>>
> > >>>  Am 31.08.12 21:44, schrieb Kito Mann:
> > >>>>
> > >>>>   I'm trying to get MyFaces Extensions-Scripting running on RAD 8.0
> > with
> > >>>>
> > >>>>> WAS
> > >>>>> 8.0 on Win 7 (no this isn't my choice of tools...) The goal is to
> use
> > >>>>> the
> > >>>>> dynamic Java class loading to avoid the hideously long WAS publish
> > >>>>> times.
> > >>>>> For the most part, everything is working fine now, and
> Ext-Scripting
> > >>>>> notices when the class has changed and outputs the full list of
> > classes
> > >>>>> that are being loaded to the console. Unfortunately, the changes
> > aren't
> > >>>>> being picked up by the application. I've tried several different
> > >>>>> scenarios
> > >>>>> (using a specific LOADER_PATH, the default WEB-INF/java path,
> > changing
> > >>>>> the
> > >>>>> publishing settings, turning Build Automatically on or off, etc.),
> > but
> > >>>>> I
> > >>>>> haven't had any luck. Perhaps WAS is doing something different at
> the
> > >>>>> classloader level than Ext-Scripting expects? Any ideas?
> > >>>>> ___
> > >>>>>
> > >>>>> Kito D. Mann | @kito99 | Author, JSF in Action
> > >>>>> Virtua, Inc. | http://www.virtua.com | JSF/Java EE training and
> > >>>>> consulting
> > >>>>> http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info |
> > >>>>> @jsfcentral
> > >>>>> +1 203-404-4848 x246
> > >>>>>
> > >>>>> * Listen to the latest headlines in the JSF and Java EE newscast: *
> > >>>>> http://blogs.jsfcentral.com/****JSFNewscast/*<
> > http://blogs.jsfcentral.com/**JSFNewscast/*>
> > >>>>> <http://blogs.**jsfcentral.com/JSFNewscast/*<
> > http://blogs.jsfcentral.com/JSFNewscast/*>
> > >>>>> >
> > >>>>> * Sign up for the JSFCentral Newsletter:
> > >>>>> http://oi.vresp.com/?fid=****ac048d0e17<
> > http://oi.vresp.com/?fid=**ac048d0e17>
> > >>>>> <http://oi.vresp.**com/?fid=ac048d0e17<
> > http://oi.vresp.com/?fid=ac048d0e17>
> > >>>>> >
> > >>>>>
> > >>>>>   Mhh Hi Kito, currently Ext-Scripting is not tested on WAS,
> normally
> > >>>>> it
> > >>>>>
> > >>>> should be picked up, normally the files should be picked up as soon
> as
> > >>>> you have the loader path set or WEB-INF/java is set.
> > >>>> Sorry for not having been able to test Ext-Scripting on the big
> irons
> > >>>> currently.
> > >>>>
> > >>>>
> > >>>>   Also I forgot, can you post your web.xml configuration?
> > >>>>
> > >>> You might have missed the init plugin for myfaces.
> > >>>
> > >>>
> > >>> Werner
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>
> > >
> > >
> >
>

Reply via email to