Hi, Dev:

 I packaged a web app with jsf features into an EAR, and deployed it, but
got an NPE when starting MyFacesWebAppContext gbean. This is related with
code line in MyFacesModuleBuilderExtension

*AbstractName myFacesWebAppContextName =
moduleContext.getNaming().createChildName(moduleName,
"myFacesWebAppContext", "MyFacesWebAppContext");*
*
*

In an EAR,  ModuleContext abstract name is  like:

org.apache.geronimo.daytrader/daytrader/
3.0.0.0/car?j2eeType=J2EEApplication,name=org.apache.geronimo.daytrader/daytrader/3.0.0.0/car

The result won't contain "WebModule"

But in an WAR is like

 com.apache.geronimo.samples/jsf/3.0.0.0/car?J2EEApplication=null,*
WebModule=com.apache.geronimo.samples/jsf/3.0.0.0/car # **contaning
WebModule*

The result contains "WebModule"

After constructing  MyFacesWebAppContext GBean, and start it as below,

*public String getWebModuleName(){*
*        return abName.getNameProperty(NameFactory.WEB_MODULE); **#
**NameFactory.WEB_MODULE
value is "WebModule"*
*    }*
*
*
*    @Override*
*    public void doStart() throws Exception {*
*        MYFACES_WEBAPP_CONTEXTS.put(getWebModuleName(), this);*
*    }*


 trying to find a *WebModule* string in its abstract name, but if jsf web
app is in an ear, its abstractname doesn't contain *WebModule*, coz of its
parent  is an EAR, whose abstract name doesn't include WebModule. This code
only work when jsf web app is standalone.

What i think is change MyFacesWebAppContext mapping way or change
myfaceswebappcontext abstractname generation way,not sure which is better.

Appreciate if somebody can shadow some lights on it.

-- 
viola

Apache Geronimo

Reply via email to