You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Werner Punz <we...@gmail.com> on 2012/09/03 13:52:26 UTC

Re: [Extensions-Scripting] Java code changes not getting picked up

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/*
> * Sign up for the JSFCentral Newsletter: 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.


Werner




Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Werner Punz <we...@gmail.com>.
Am 04.09.12 20:56, schrieb Werner Punz:
> Am 04.09.12 20:40, schrieb Kito Mann:
>> On Tue, Sep 4, 2012 at 2:30 PM, Werner Punz <we...@gmail.com>
>> wrote:
>>
>>> The config looks correct to me
>>>
>>
>> Ok. Thanks for looking at it.
>>
>>
>>> 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?
>>>
>>
>> It's running in an EAR environment. One other nuance: MyFaces Core is
>> loaded as part of a WAS "shared library",  and Ext-Scripting is bundled
>> with the WAR/EAR. That seems logical to me, but should Ext-Scripting
>> be in
>> the shared library instead?
>>
> Mhh just a wild guess here, ext-scripting is trying to avoid a
> classloaders for compatibility reasons in EAR containers, instead it
> uses a classloading plugin which myfaces loads upon initialisation,
> could be that the plugin is not found by myfaces due to different
> library environments.
> At least it sounds like the plugin is not loaded into myfaces for
> whatever reason.
>
> Give it a try with ext-scripting at the same position as myfaces,
> otherwise I will debug it out with the current trunk ASAP.
>
Sorry I meant it tries to avoid to register a custom classloader,
the context classloader of course is used to register the newly loaded 
classes.
So we have two possible point of failures
a) the plugin was not found by myfaces
b) the classloader which registers the classes is the wrong one

Either way, this needs some debugging.


Werner




Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Werner Punz <we...@gmail.com>.
Am 04.09.12 20:40, schrieb Kito Mann:
> On Tue, Sep 4, 2012 at 2:30 PM, Werner Punz <we...@gmail.com> wrote:
>
>> The config looks correct to me
>>
>
> Ok. Thanks for looking at it.
>
>
>> 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?
>>
>
> It's running in an EAR environment. One other nuance: MyFaces Core is
> loaded as part of a WAS "shared library",  and Ext-Scripting is bundled
> with the WAR/EAR. That seems logical to me, but should Ext-Scripting be in
> the shared library instead?
>
Mhh just a wild guess here, ext-scripting is trying to avoid a 
classloaders for compatibility reasons in EAR containers, instead it 
uses a classloading plugin which myfaces loads upon initialisation, 
could be that the plugin is not found by myfaces due to different 
library environments.
At least it sounds like the plugin is not loaded into myfaces for 
whatever reason.

Give it a try with ext-scripting at the same position as myfaces, 
otherwise I will debug it out with the current trunk ASAP.

Werner




Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Kito Mann <ki...@virtua.com>.
On Tue, Sep 4, 2012 at 2:30 PM, Werner Punz <we...@gmail.com> wrote:

> The config looks correct to me
>

Ok. Thanks for looking at it.


> 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?
>

It's running in an EAR environment. One other nuance: MyFaces Core is
loaded as part of a WAS "shared library",  and Ext-Scripting is bundled
with the WAR/EAR. That seems logical to me, but should Ext-Scripting be in
the shared library instead?

>
>
>
> 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 <we...@gmail.com>
>> 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
>>>
>>>
>>>
>>>
>>>
>>
>
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Kito Mann <ki...@virtua.com>.
FYI, this is still with Ext-Scripting 1.0.2. Let me know if you really
think using the SNAPSHOT would make a difference.
___

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/*
* Sign up for the JSFCentral Newsletter: http://oi.vresp.com/?fid=ac048d0e17



On Tue, Sep 4, 2012 at 5:39 PM, Kito Mann <ki...@virtua.com> wrote:

> So I tried it out in the shared library, and the result is the same,
> unfortunately. It thinks its loading the classes, but it has no effect. I
> did notice a couple of things in the logs, though:
>
> * Even though I added the PKG_WHITELIST parameter and specified a single
> package, Ext-Scripting is says it is loading dozens of classes, many of
> which are not in the same package. Is this correct? The output is:
> "[EXT-SCRIPTING] Loading Java file:...."
>
> * WAS "failed to open resource
> [org/apache/myfaces/extensions/scripting/servlet/ScriptingServletFilter.class]
> from module [ test.war ]". In this case the filter is actually in the
> shared library, so it really isn't in the WAR. How can I tell if the filter
> is actually running?
>
> ___
>
> 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/*
> * Sign up for the JSFCentral Newsletter:
> http://oi.vresp.com/?fid=ac048d0e17
>
>
>
> On Tue, Sep 4, 2012 at 2:15 PM, Werner Punz <we...@gmail.com> wrote:
>
>> Ext-scripting registers short lived classloaders which register the newly
>> to be loaded classes and drops the classloaders afterwards.
>> (so called throw away classloaders)
>>
>> there is no long lived classloader pushed into the system on top of it to
>> avoid container problems.
>>
>> Either way thanks for all the links and debugging hints, I will have a
>> look at it.
>>
>> Werner
>>
>>
>> Am 04.09.12 21:09, schrieb Rohit Kelapure:
>>
>>  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<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.multipl>
>>> <h**ttp://publib.boulder.ibm.com/**infocenter/wasinfo/v6r1/topic/**
>>> com.ibm.websphere.nd.**multiplatform.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>
>>> >
>>>        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<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.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.diagnosti>
>>> <htt**p://publib.boulder.ibm.com/**infocenter/javasdk/v5r0/topic/**
>>> com.ibm.java.doc.diagnostics.**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>
>>> >
>>>           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://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-dclp1/>
>>>        -
>>>
>>>        http://www-128.ibm.com/**developerworks/java/library/j-**
>>> dclp2.html<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-dclp3/>
>>>        -
>>>
>>>        http://www-128.ibm.com/**developerworks/java/library/j-**dclp4/<http://www-128.ibm.com/developerworks/java/library/j-dclp4/>
>>>        -
>>>
>>>        http://www.redbooks.ibm.com/**redpapers/pdfs/redp4307.pdf<http://www.redbooks.ibm.com/redpapers/pdfs/redp4307.pdf>
>>>        -
>>>
>>>
>>>        http://www.ibm.com/**developerworks/websphere/**
>>> library/techarticles/0112_**deboer/deboer.html<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 <ki...@virtua.com> wrote:
>>>
>>>  On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <ke...@gmail.com>
>>>> wrote:
>>>>
>>>>  WAS 8 is free for developers. No license needed.
>>>>> See  http://www.ibm.com/**developerworks/downloads/ws/**wasdevelopers/<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 <we...@gmail.com>
>>>>>
>>>> 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>
>>>>>>> <
>>>>>>>
>>>>>> 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>
>>>>>>> <
>>>>>>>
>>>>>> 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>
>>>>>>> <
>>>>>>>
>>>>>> 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://**j**ava.sun.com/xml/ns/javaee<http://java.sun.com/xml/ns/javaee>
>>>>>>> <
>>>>>>>
>>>>>> 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>
>>>>>>> <
>>>>>>>
>>>>>> 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/*>
>>>>>>> <
>>>>>>>
>>>>>> 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>
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Sep 3, 2012 at 7:59 AM, Werner Punz <we...@gmail.com>
>>>>>>> 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/*>
>>>>> >
>>>>>
>>>>>>  <http://blogs.**jsfcentral.**com/JSFNewscast/*<http://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>
>>>>> >
>>>>>
>>>>>>  <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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Kito Mann <ki...@virtua.com>.
So I tried it out in the shared library, and the result is the same,
unfortunately. It thinks its loading the classes, but it has no effect. I
did notice a couple of things in the logs, though:

* Even though I added the PKG_WHITELIST parameter and specified a single
package, Ext-Scripting is says it is loading dozens of classes, many of
which are not in the same package. Is this correct? The output is:
"[EXT-SCRIPTING] Loading Java file:...."

* WAS "failed to open resource
[org/apache/myfaces/extensions/scripting/servlet/ScriptingServletFilter.class]
from module [ test.war ]". In this case the filter is actually in the
shared library, so it really isn't in the WAR. How can I tell if the filter
is actually running?
___

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/*
* Sign up for the JSFCentral Newsletter: http://oi.vresp.com/?fid=ac048d0e17



On Tue, Sep 4, 2012 at 2:15 PM, Werner Punz <we...@gmail.com> wrote:

> Ext-scripting registers short lived classloaders which register the newly
> to be loaded classes and drops the classloaders afterwards.
> (so called throw away classloaders)
>
> there is no long lived classloader pushed into the system on top of it to
> avoid container problems.
>
> Either way thanks for all the links and debugging hints, I will have a
> look at it.
>
> Werner
>
>
> Am 04.09.12 21:09, schrieb Rohit Kelapure:
>
>  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<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.multipl>
>> <h**ttp://publib.boulder.ibm.com/**infocenter/wasinfo/v6r1/topic/**
>> com.ibm.websphere.nd.**multiplatform.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>
>> >
>>        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<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.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.diagnosti>
>> <htt**p://publib.boulder.ibm.com/**infocenter/javasdk/v5r0/topic/**
>> com.ibm.java.doc.diagnostics.**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>
>> >
>>           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://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-dclp1/>
>>        -
>>
>>        http://www-128.ibm.com/**developerworks/java/library/j-**
>> dclp2.html<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-dclp3/>
>>        -
>>
>>        http://www-128.ibm.com/**developerworks/java/library/j-**dclp4/<http://www-128.ibm.com/developerworks/java/library/j-dclp4/>
>>        -
>>
>>        http://www.redbooks.ibm.com/**redpapers/pdfs/redp4307.pdf<http://www.redbooks.ibm.com/redpapers/pdfs/redp4307.pdf>
>>        -
>>
>>
>>        http://www.ibm.com/**developerworks/websphere/**
>> library/techarticles/0112_**deboer/deboer.html<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 <ki...@virtua.com> wrote:
>>
>>  On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <ke...@gmail.com>
>>> wrote:
>>>
>>>  WAS 8 is free for developers. No license needed.
>>>> See  http://www.ibm.com/**developerworks/downloads/ws/**wasdevelopers/<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 <we...@gmail.com>
>>>>
>>> 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>
>>>>>> <
>>>>>>
>>>>> 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>
>>>>>> <
>>>>>>
>>>>> 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>
>>>>>> <
>>>>>>
>>>>> 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://**j**ava.sun.com/xml/ns/javaee<http://java.sun.com/xml/ns/javaee>
>>>>>> <
>>>>>>
>>>>> 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>
>>>>>> <
>>>>>>
>>>>> 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/*>
>>>>>> <
>>>>>>
>>>>> 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>
>>>>>> >
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Sep 3, 2012 at 7:59 AM, Werner Punz <we...@gmail.com>
>>>>>> 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/*>
>>>> >
>>>>
>>>>> <http://blogs.**jsfcentral.**com/JSFNewscast/*<http://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>
>>>> >
>>>>
>>>>> <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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Werner Punz <we...@gmail.com>.
Hi Kito, I just got two days from my employer to debug it out, and 
frankly spoken the WAS toolchain did not work for me, I got the server 
up and running standalone, but I could not deploy the hello world war 
(ran out of time to investigate that further probably a missing config 
entry)
The combination with Eclipse did not work at all for me.
Have in mind I am not an expert on WAS I never really have used it.
If anyone from the IBM guys is reading this, I could need some help 
here. Ext-Scripting would be a great extension for WAS if it could be 
made to run on it.

Anyways:

But I was able to debug the thing out for WAS Liberty profile as well as 
Glassfish, here is the info on WAS LB (Glassfish should now work out of 
the box with the latest snapshot and myfaces in)

I noticed that WAS LB does not unpack the wars as other app servers do, 
hence the compilation failed due to the compiler not having the jars 
available.
What you can do is following

a) Build the latest snapshot from the trunk, should be self contained 
within the maven repos, so no additional work is needed mvn clean 
install should suffice.

b) Replace the 1.0.2 jars with the ones from the Snapshot

in your web.xml add following:

    <context-param>
         <description>Some containers do not expand their war/ear files 
and do not return a proper classpath for the
         compilers.
         For those you can set an additional classpath as comma 
separated list of paths so that the compiler can pick
         up dependencies from other directories. Wildcarding regarding 
jar and zip files is allowed.
         </description>
 
<param-name>org.apache.myfaces.extensions.scripting.ADDITIONAL_CLASSPATH</param-name>
 
<param-value>/whatever/myfaces20-extscript-helloworld/target/myfaces20-extscript-helloworld-1.0.4-SNAPSHOT/WEB-INF/lib/*.jar,
 
/whatever/myfaces20-extscript-helloworld/target/myfaces20-extscript-helloworld-1.0.4-SNAPSHOT/WEB-INF/classes</param-value>
     </context-param>


adjust the paths to your needs so that the compiler can pick up the 
paths with the jars as needed.
This works at least under WAS liberty profile, give it a shot with the 
snapshot release.
also one change, the servlet filter is not needed anymore, it still is 
in with auto setup, but you wont need the filter in your web.xml 
anymore, it either is picked up doing nothing or not does not matter.
(I will remove the servlet filter asap to avoid confusion)

Werner



Am 11.09.12 15:35, schrieb Kito Mann:
> Hello Werner,
>
> Have you had a chance to debug this yet?
> ___
>
> 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/
> * Sign up for the JSFCentral Newsletter: http://oi.vresp.com/?fid=ac048d0e17
>
>
> On Tue, Sep 4, 2012 at 3:15 PM, Werner Punz <we...@gmail.com> wrote:
>> Ext-scripting registers short lived classloaders which register the newly to
>> be loaded classes and drops the classloaders afterwards.
>> (so called throw away classloaders)
>>
>> there is no long lived classloader pushed into the system on top of it to
>> avoid container problems.
>>
>> Either way thanks for all the links and debugging hints, I will have a look
>> at it.
>>
>> Werner
>>
>>
>> Am 04.09.12 21:09, schrieb Rohit Kelapure:
>>
>>> 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 <ki...@virtua.com> wrote:
>>>
>>>> On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <ke...@gmail.com>
>>>> 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 <we...@gmail.com>
>>>>
>>>> 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 <we...@gmail.com>
>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>
>


Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Kito Mann <ki...@virtua.com>.
Hello Werner,

Have you had a chance to debug this yet?
___

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/
* Sign up for the JSFCentral Newsletter: http://oi.vresp.com/?fid=ac048d0e17


On Tue, Sep 4, 2012 at 3:15 PM, Werner Punz <we...@gmail.com> wrote:
> Ext-scripting registers short lived classloaders which register the newly to
> be loaded classes and drops the classloaders afterwards.
> (so called throw away classloaders)
>
> there is no long lived classloader pushed into the system on top of it to
> avoid container problems.
>
> Either way thanks for all the links and debugging hints, I will have a look
> at it.
>
> Werner
>
>
> Am 04.09.12 21:09, schrieb Rohit Kelapure:
>
>> 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 <ki...@virtua.com> wrote:
>>
>>> On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <ke...@gmail.com>
>>> 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 <we...@gmail.com>
>>>
>>> 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 <we...@gmail.com>
>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Werner Punz <we...@gmail.com>.
Ext-scripting registers short lived classloaders which register the 
newly to be loaded classes and drops the classloaders afterwards.
(so called throw away classloaders)

there is no long lived classloader pushed into the system on top of it 
to avoid container problems.

Either way thanks for all the links and debugging hints, I will have a 
look at it.

Werner


Am 04.09.12 21:09, schrieb Rohit Kelapure:
> 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 <ki...@virtua.com> wrote:
>
>> On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <ke...@gmail.com> 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 <we...@gmail.com>
>> 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 <we...@gmail.com>
>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>



Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Rohit Kelapure <ke...@gmail.com>.
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 <ki...@virtua.com> wrote:

> On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <ke...@gmail.com> 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 <we...@gmail.com>
> 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 <we...@gmail.com>
> > >> 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
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>
> > >
> > >
> >
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Kito Mann <ki...@virtua.com>.
On Tue, Sep 4, 2012 at 2:36 PM, Rohit Kelapure <ke...@gmail.com> 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 <we...@gmail.com> 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 <we...@gmail.com>
> >> 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
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >
> >
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Rohit Kelapure <ke...@gmail.com>.
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 ?

-cheers,
ROhit


On Tue, Sep 4, 2012 at 2:30 PM, Werner Punz <we...@gmail.com> 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 <we...@gmail.com>
>> 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
>>>
>>>
>>>
>>>
>>>
>>
>
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Werner Punz <we...@gmail.com>.
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"
>      xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="
> 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/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.StartupServletContextPluginChainLoader</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/*
> * Sign up for the JSFCentral Newsletter: http://oi.vresp.com/?fid=ac048d0e17
>
>
>
> On Mon, Sep 3, 2012 at 7:59 AM, Werner Punz <we...@gmail.com> 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/*>
>>>> * Sign up for the JSFCentral Newsletter:
>>>> 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
>>
>>
>>
>>
>



Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Kito Mann <ki...@virtua.com>.
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"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="
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/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.StartupServletContextPluginChainLoader</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/*
* Sign up for the JSFCentral Newsletter: http://oi.vresp.com/?fid=ac048d0e17



On Mon, Sep 3, 2012 at 7:59 AM, Werner Punz <we...@gmail.com> 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/*>
>>> * Sign up for the JSFCentral Newsletter:
>>> 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
>
>
>
>

Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Werner Punz <we...@gmail.com>.
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/*
>> * Sign up for the JSFCentral Newsletter:
>> 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




Re: [Extensions-Scripting] Java code changes not getting picked up

Posted by Werner Punz <we...@gmail.com>.
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/*
>> * Sign up for the JSFCentral Newsletter:
>> 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.
>
>
Btw. also give the latest trunk version a try i fixed several windows 
bugs in 1.0.3 along the way, it might work out for your.