TilesContainer not initialized - struts2

During JSP rendering I am getting the error saying that unable to initialized tile container.
However i am able to render the normal JSP but if i use tile specific tag get the error.
I am using
WAS 8.5
eclipse Kepler
Java 7.0
All the necessary jars are present in my lib folder.
My JSP:
<%# taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%#page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<tiles:insertDefinition name="ToolbarBody">
<tiles:putAttribute name="documentTitle" value="findUser" type="string"></tiles:putAttribute>
<tiles:putAttribute name="bodyarea" value="/WEB-INF/content/findUser_body.jsp" type="page"></tiles:putAttribute>
<tiles:putAttribute name="menuarea" value="/WEB-INF/content/menu.jsp" type="page"></tiles:putAttribute>
</tiles:putAttribute>
</tiles:insertDefinition>
Logs:
000000df webapp E com.ibm.ws.webcontainer.webapp.WebApp logError SRVE0293E: [Servlet Error]-[javax.servlet.jsp.JspException: TilesContainer not initialized]: com.ibm.ws.webcontainer.webapp.WebAppErrorReport: javax.servlet.jsp.JspException: TilesContainer not initialized
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:626)
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:656)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1301)
at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:127)
at net.sf.ehcache.constructs.web.GenericResponseWrapper.sendError(GenericResponseWrapper.java:104)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:914)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.keane.util.FunctionAuditFilter.doFilter(FunctionAuditFilter.java:172)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:95)
at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:86)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
Web.xml tiles mapping
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles-defs.xml
</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>

This may help you to get some idea about your error.
Incorrect / Missing DTD reference in the tiles-defs.xml
Incorrect / Missing XML Elements in the tiles-defs.xml
Missing retrotranslator-runtime-n.n.n.jar in WEB-INF/lib
-Sandeep Seshan's Log-
More Details

Related

serving common html without facelets/jsf-tags

I have the folder containing a client-side-html-template ("template.xhtml"). The folder resides in public folder (not in WEB_INF).
When saved the file with suffix "xhtml" and wrap the content with "<ui:composition", then client side (ajax) request can access.
However, when I save it to "template.html" and delete the "<ui:composition", then client ajax cannnot access this page (401).
My web.xml has this mapping:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>xhtml</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<security-constraint>
<display-name>Restrict raw XHTML Documents</display-name>
<web-resource-collection>
<web-resource-name>XHTML</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>
How can I serve common "html-files" by client side ajax request without intercepting these files by jsf/facelets?
Found a simple way without the need to change web.xml:
I changed the static "html" files to "htm".

ViewExpiredException when submitting JSF form to different host

I want to create login functionality for Admin so that admin can login (from Admin-portal) as any user (in User-portal). (These are two different portal running in two different host).
In Admin-portal, I have have written
<p:dialog>
<form action="http://user-portal.com/index.jsf" method="post"
target="_blank">
<h:inputHidden id="adminId" value="#{userListBean.openAdminId}"></h:inputHidden>
<h:inputHidden id="clientId" value="#{userListBean.openClientId}"></h:inputHidden>
<!-- some other security parameters -->
<input type="submit" value="login"></input>
</form>
</p:dialog>
Problem is in User-portal.
index.jsf
<h:body>
#{customLogin}
</h:body>
CustomLogin bean
#Named("customLogin")
#SessionScoped
public class CustomLogin implements Serializable {
.
.
#PostConstruct
public void customLoginPage() {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance()
.getExternalContext().getRequest();
Map<String, String[]> requestParaMap = request.getParameterMap();
// some admin and user validation and setting other injected bean property base on it
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance()
.getExternalContext().getResponse();
string serverName = request.getServerName();
response.sendRedirect(serverName+ "/home.jsf");
// also tried this
// facesContext.getExternalContext().redirect("/home.jsf");
return;
}
CustomLogin bean is session scoped and method "customLoginPage" is invoked postconstruct. So it is running in "RESTORE_VIEW" phase of JSF Lifecycle.
I am getting following error :
javax.faces.application.ViewExpiredException: viewId:/index.jsf - View /index.jsf could not be restored.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
.
.
.
12:21:24,683 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/].[Faces Servlet]] (http-localhost/127.0.0.1:8080-1) JBWEB000236: Servlet.service() for servlet Faces Servlet threw exception: java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:420) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:602) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at javax.faces.context.ExternalContextWrapper.redirect(ExternalContextWrapper.java:462) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
Few web.xml content that may be helpful
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>javax.faces.RESOURCE_EXCLUDES</param-name>
<param-value>.xhtml .class .properties .xml</param-value>
</context-param>
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<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>*.jsf</url-pattern>
</servlet-mapping>
I have read ViewExpiredException by BalusC. But here every request to user-portal is fresh. Plus when I change javax.faces.STATE_SAVING_METHOD to client, I am getting "GZIP exception".

A4J Polling throws error on reREnder

I have a JSF(2.2.5) project using RichFaces(4.3.6) and PrimeFaces (5.0) with the following code
<h:panelGroup>
<a4j:region>
<h:form>
<a4j:poll id="poll" interval="15000" enabled="#{card.poll}"
reRender="swimlanes #parent" actionListener="#{card.reloadData}" />
</h:form>
</a4j:region>
<h:form>
<a4j:outputPanel id="swimlanes">
<h:panelGroup>
Stuff
</h:panelGroup>
</a4j:outputPanel>
</h:form>
</h:panelGroup>
Which is very similar to the example of the RichFaces page but when the poll becomes enabled I get the following error and no reRendering occurs
debug[09:41:56.298]: New request added to queue. Queue requestGroupingId changed to j_idt20:poll
debug[09:41:56.299]: Queue will wait 0ms before submit
debug[09:41:56.299]: richfaces.queue: will submit request NOW
info [09:41:56.302]: Received 'begin' event from <span id=j_idt20:poll ...>
info [09:41:57.310]: Received 'beforedomupdate' event from <span id=j_idt20:poll ...>
debug[09:41:57.312]: Server returned responseText: <partial-response id="j_id1"><changes><update id="j_idt20:poll"><![CDATA[<span style="display:none;" id="j_idt20:poll"><script type="text/javascript">new RichFaces.ui.Poll("j_idt20:poll",{"enabled":true,"interval":15000,"ontimer":function(event){RichFaces.ajax("j_idt20:poll",event,{"incId":"1"} )}} )</script></span>]]></update><update id="javax.faces.ViewState"><![CDATA[zl8Yr/2cJTwlpFZfrKzxi16KSE/7HTOE5e3ptnUnBJgIouLrdwKWDtUDlUWXx3gmmcCA9jCPG6jpktimoa1GPe4Icqn0EC/f4uetGoNQqAoieOT+2vVVDmQPQclPxvnaZU/3T+2fUyMU2YU5YF0C6/WrStC+UGJzhts1AIP0v6tZ2PHC5XqZhb1hpg6943W4/61rQBNNMRDYerzyipmtFkNLLQm5VtyfVqijlaQhzeP1QJeOqTDHtFAnBN78Ie6E3uGgufi8wX9jVeIXkkaI29OERWotflx2OKaJSakb/lWXMMjjU4NTejwT6IOLx2Mw5mstciSUCRMPzAbA19OK7uFh+Zun2CPRG27T3RH9je9C7iVwxjlZNXKuUhW/QlyPWoyZkhCpfp5Xxc+eruD/iAUZSJPPKQaM/OzEukNegOSeSaQJ1dLCPynuKBhrRDVyAvdR1UN2jT3G4VtK3P8YCv9p8OpwiDQAl3hUqPPrWxgR/4oIsj7Znfjp5uYZ1FDKVEHJSIYpc2tZpYFqEXr9tGjN0lqKcgrFhf3uOJAPw3PM1xhD0iBwucVYQLdT3EgCzrGLfiirzWktFwBJ5Wlo+sJLKBl02rXhV65CCqWgi9FlpzhrCMkyav0nUpF1bkXJXI0Di3jKESQnF2lWbsNN5886Aem81pu5C8tXGzK4mulnM70oTcqrBuLKBjV6sXbctKATOYNytKIQC5JOH/kt0SqU/AlAg29mVjUkBtOyW/MNKXQ3xkRf4eLDxD0KmAGfNtWRzGYSd/YBbIPERZlrRJuhQh02NugTqvsXdMhKEZmbOSU9HYOX7vbj8UzDeZiy+Kp86ZAUswZ7jbOlZOVlOPn4AJPBD51htiUtTi4zh8zbhKSOpHfvuVYqseHBKtgDi0pvPn/rNC36dbtD4sLLxFPLLinr3OGpTj4IxJRhXQvV8Sj4jUuGK3y6s2eISOU6bgsmcz8ZqLO8OnZVakVITsyqQ9Zs7OhhCks/5a2VMaKpKDKMCS9bwt3aHlK+vPogE6IngBRXCB9ow8fC6A8eLSWQanQGS3U0cqiRt8LL25vs9bDuUTaXdHpJZjOU9KqzsafAeaBdxfAidxigtvvgaMissfobFc+j3yQBcAuMEX9s1NQT3R7xuMLe7Ox62qatAAm1eJgbjezI6W6ZYO6xjL7BEHzUswaBy51hw0Ff5HRfulZrnHlzogIqcLTg+uRsRqHlXIZ3cEOXBOvG6EJChyP7eAYvwuQAEBWUjtHbJ85s5xuZUsCDMwawVwN7i7J7ToLdVfuNiAfDkhzmx8M50lkXY0+5NBT/sIROuZ2nJd3QuPpQ2+nC0KoqA4+SjDKIHpC7hVeZVYXV1NmA1uTXVE5BTMnJid+CPSv93t5rbHAOowr6BTqJGv0uKHlFTaGt7kxlWdGZgT8rqP4/f5OtrgaW7oWjbRClEyUlOMxQt0HW2LcmILLS5Vc8xNUGqjCNxC7P4hbnR3OuIMMnsMyoXZCxj++ftsrXpNtqOAE6APZv6ph8E5I2KSmNe3BJiVqjYoybbLbrfbaLcAr5uR3y53BZDyHOukm/KWzk/EfNTed7wlLvOzZ6RFKWIqycF24sXNj/9OHHAsT3U8+lWnSy3O+dC+Yk49oL8CG6pLzL3weP68ztFnbI/FqgpyVocDPRs/gvySPWNqidGJqkqArnKglDa7DeX/uL/Lf+hcvNvge8fv87/FEll6amlKvIc84YEr2JWtUsgpmr4rB1L7/HvihIyCcmZT3VoBpqzuixsGWt48mZFAcMJVPzbWbVmPu8eUitCfq94rQGU5jq7DeDT131wUHnl/T3Ylpx5pd2hd0zDClN53MnaeyAoH9u+rYaU2ilkWWn0uq9Elt7VCU1MdIHu+RNb14JwnRQNCuPrXXW7Oaz8UlTO1RIODuDLLP6oVJP9YGa3qP6U9Kws9du4iJ9LYEt5DNeZvzJSRTTYrY=]]></update><extension id="org.richfaces.extension"><render>j_idt20:poll</render></extension></changes></partial-response>
warn [09:41:57.318]: richfaces.queue: ajax submit error: During update: javax.faces.ViewState not found
debug[09:41:57.319]: richfaces.queue: Nothing to submit
error[09:41:57.320]: Received 'error#malformedXML' event from <span id=j_idt20:poll ...>
error[09:41:57.321]: [status=200] During update: javax.faces.ViewState not found
info [09:41:57.321]: Received 'complete' event from <span id=j_idt20:poll ...>
This is the web.xml
<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Agile Development Tools</display-name>
<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>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
Any idea how to fix this please?
It's a BUG in RichFaces 4.3.7 and earlier versions!
This Bug doesn't exist in RF Version 4.5 and 5.0

DWR using get / post url

I am using DWR for one of my application. I have setup the environment and clear about how to make call to Java functions using the ClassName.method() approach. But I want to use jsonp style approach mentioned here http://directwebremoting.org/dwr/introduction/remoting_options.html.
I tried creating sample application and run on tomcat. But I was unable to get any result from server. It was saying 404.
This is my call:
$.post("/DWRDemo/dwr/jsonp/Demo/sayHello/" + name, { },
function(data) {
dwr.util.setValue("demoReply", data.reply);
}, "jsonp");
}
where
DWRDemo: Application name
Demo: class name
sayHello : method name
=====================================================================
dwr.xml
<create creator="new" javascript="Demo">
<param name="class" value="org.getahead.dwrdemo.simpletext.Demo"/>
</create>
=====================================================================
web.xml
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<description>Direct Web Remoter Servlet</description>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>jsonpEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
=====================================================================
And I have included the required .js files in my html
====================================================================
Is there any other configuration that I am missing.
Appreciate your help.
Regards,
Ronak
I have found the resolution. Actually, I was using DWR.jar (version 2.7). But looks like it does not support servlet call. I tried with DWR.jar (version 3.0) and it worked straight away.

JSF2: Tags not rendered but the usual "fixes" doesn't cut it

My problem is similar to:
JSF tags not rendered, JSf tags not being rendered and also JSF tags not being rendered as HTML no suggestion there helped me.
Basically the problem is that regardless of going through a welcome page or not the page is not rendered. IE tries to download the file and chrome basically just skips all the jsf tags. It's obvious that it wasn't translated by the framework but I don't understand why.
The back story is that I did a pilot for a conversion of a system from jsf 1.2 into jsf2. The pilot was successful I managed to get it to work in the pilot branch. However when I'm trying to achieve the same thing for real this time I can't get it to work.
The usual problem seems to be (accordingly to veteran answerer BalusC):
The page URL did not match the url-pattern of the FacesServlet, thus it had not any chance to parse the tags.
OR: The xmlns declarations for JSF components are missing in tag, thus it was treated as plaintext.
The usual fixes seems to be:
Include xmlns in html declaration (I have this in both web.xml and the .xhtml files)
Include or modify Faces Servlet Mapping in web.xml. I can however find no fault in mine. I also tried switching out /faces/* to *.xhtml. Parts that I see as relevant in web.xml included below (Whole file is big, this is a big system):
Part of web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_5.xsd"
version="2.5">
<context-param>
<description>
Tell the runtime where we are in the project development
lifecycle.
</description>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<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>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<welcome-file-list id="default">
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
</welcome-file-list>
I'm aware that the welcome file is a html file but this worked in the pilot. That file uses
<body bgcolor="#FFFFFF" onload="window.location='portal/login/login.jsf'">
</body>
To get things going. if I manually type the adress in to some random test page containing little and simple code the problem still occurs so the problem feels unrelated to welcome page.
Will gladly assist with any additional information and I'm really stuck here in a bad spot. Thanks for reading.
Resolved by editing faces-config to include xmlns:xsi.

Resources