I'm trying to get Oracle ADF Faces 10_1_3_0_4 and the Shale 1.0.3
snapshot to work together. I apologize if Oracle's ADF Faces is out of
bounds here, but that's what we're using at present and I'm not sure
what the correct forum is these days.
I didn't get far enough to use Shale for anything yet - I just added it
to an existing webapp that uses ADF components and things broke
(internal server errors). If I remove all traces of Shale, the webapp
works fine. I've tried many changes to my web.xml and faces-config.xml
files, but I always get the following error in my tomcat log when I try
to load a page containing ADF components. Obviously, I don't understand
what's wrong. My web.xml and faces-config.xml files follow the tomcat
log entry below.
INFO [http-51972-Processor25] (RenderKitFactoryImpl.java:54) -
RenderKit with renderKitId 'oracle.adf.core' was replaced.
ERROR [http-51972-Processor25] (ApplicationDispatcher.java:712) -
Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: No AdfRenderingContext
at
oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(Core
Renderer.java:154)
at
oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentB
ase.java:624)
at
javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:495)
at
javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:363)
at
oracle.adf.view.faces.webapp.UIXComponentTag.doEndTag(UIXComponentTag.ja
va:100)
at
org.apache.jsp.inbox3_jsp._jspx_meth_afh_styleSheet_0(org.apache.jsp.inb
ox3_jsp:204)
at
org.apache.jsp.inbox3_jsp._jspx_meth_f_view_0(org.apache.jsp.inbox3_jsp:
161)
at
org.apache.jsp.inbox3_jsp._jspService(org.apache.jsp.inbox3_jsp:119)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:322)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:463)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:398)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:301)
at
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(S
ervletExternalContextImpl.java:416)
at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspView
HandlerImpl.java:234)
at
oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(Vie
wHandlerImpl.java:157)
at
org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.j
ava:442)
at
org.apache.shale.view.faces.ViewViewHandler.renderView(ViewViewHandler.j
ava:150)
at
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384
)
at
javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFil
ter.java:144)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(
AdfFacesFilterImpl.java:367)
at
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(Ad
fFacesFilterImpl.java:336)
at
oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFace
sFilterImpl.java:196)
at
oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java
:87)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.shale.faces.ShaleApplicationFilter.doFilter(ShaleApplicationF
ilter.java:271)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:744)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
at java.lang.Thread.run(Thread.java:595)
My web.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<filter>
<filter-name>shale</filter-name>
<filter-class>
org.apache.shale.faces.ShaleApplicationFilter
</filter-class>
</filter>
<filter>
<filter-name>adfFaces</filter-name>
<filter-class>oracle.adf.view.faces.webapp.AdfFacesFilter</filter-class>
</filter>
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-
class>
<init-param>
<param-name>maxFileSize</param-name>
<param-value>20m</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shale</filter-name>
<servlet-name>faces</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>adfFaces</filter-name>
<servlet-name>faces</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<servlet-name>faces</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>faces</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>resources</servlet-name>
<servlet-class>oracle.adf.view.faces.webapp.ResourceServlet</servlet-cla
ss>
</servlet>
<servlet-mapping>
<servlet-name>faces</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/adf/*</url-pattern>
</servlet-mapping>
</web-app>
My faces-config.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<application>
<default-render-kit-id>oracle.adf.core</default-render-kit-id>
</application>
...managed beans and navigation rules...
</faces-config>
Any help greatly appreciated. Thanks.
-Jon