How to handle static content in OrbeonForms 3.9 - orbeon

I trying to upgrade from OrbeonForms version 3.8 to 3.9. I'm using PriorityResourceManagerFactory as follows:
<context-param>
<param-name>oxf.resources.factory</param-name>
<param-value>org.orbeon.oxf.resources.PriorityResourceManagerFactory</param-value>
</context-param>
<!-- Uncomment this for the filesystem resource manager -->
<context-param>
<param-name>oxf.resources.priority.1</param-name>
<param-value>org.orbeon.oxf.resources.FilesystemResourceManagerFactory</param-value>
</context-param>
<context-param>
<param-name>oxf.resources.priority.1.oxf.resources.filesystem.sandbox-directory</param-name>
<param-value>d:/Sources/esb-repository/user-interface</param-value>
</context-param>
<context-param>
<param-name>oxf.resources.priority.2</param-name>
<param-value>org.orbeon.oxf.resources.WebAppResourceManagerFactory</param-value>
</context-param>
<context-param>
<param-name>oxf.resources.priority.2.oxf.resources.webapp.rootdir</param-name>
<param-value>/WEB-INF/resources</param-value>
</context-param>
<context-param>
<param-name>oxf.resources.priority.3</param-name>
<param-value>org.orbeon.oxf.resources.FilesystemResourceManagerFactory</param-value>
</context-param>
<context-param>
<param-name>oxf.resources.priority.3</param-name>
<param-value>org.orbeon.oxf.resources.ClassLoaderResourceManagerFactory</param-value>
</context-param>
I have entry in page-flow.xml:
<files path-info=".+\.(gif|css|pdf|json|js|png|jpg|xsd|ico)"
matcher="oxf:perl5-matcher"/>
Within my directory I keep whole application code and I have file theme/styles/layout.css. In Orbeon 3.8 server path /orbeon/theme/styles/layout.css works perfectly, but not in 3.9.
How to configure it to keep backward compatibility?

I'll assume /orbeon is the context on which you deployed the Orbeon Forms web app.
If you're using Orbeon Forms PE, starting with 3.9 versioned resources are enabled by default, the path requested by the browser needs to be /orbeon/3.14/theme/styles/layout.css, where 3.14 is the app version. If you write /theme/styles/layout.css in your code, Orbeon Forms will automatically rewrite it for you, adding the version number in the HTML it sends to the browser.
Since 3.9, the default app path is prepended when looking up resources. So a request for /orbeon/3.14/theme/styles/layout.css, with versioned resources, or /orbeon/theme/styles/layout.css without versioned resources, will look for the file app/theme/styles/layout.css in your resource directory. So you need to either:
Move your CSS to a different place on disk (move theme under the app directory).
Add theme as a platform path, by adding it to the oxf.url-rewriting.platform-paths property. Most likely this is the option that makes the most sense for you.

Related

vaadin 7 missing web.xml file change default page

im new to vaadin but noticed that you can in vaadin 6 set the default page in the web.xml file but in vaadin 7 this has been done away with.
how do i change the default page ?
Thanks
I am not quite sure what you mean by "default page", so I have to make some guesses.
As you say that you are missing the web.xml, you probably mean a project created by Vaadin Plugin for Eclipse or the Maven archetype. By default, the wizard (or Maven archetype) creates a project stub that uses Servlet API 3.0 deployment with #WebServlet annotation for the servlet class, which is a static class nested in the UI class. It can also be a regular (non-nested and non-static) class, but that's how it is in the application stub.
If you choose Servlet API 2.4 for the new Vaadin 7 Eclipse project, it will use web.xml to define the servlet and UI class, as well as their parameters.
You can mix #WebServlet and web.xml deployment, in which case settings done in web.xml override the ones given with #WebServlet annotation.
Default page to serve is not actually a need to be defined since the framwork handles everything, especially with 3.0 servlet implementation.
But sometimes one may need such file (like, for example, to add context listeners for Spring).
So you can either select the option to generate it during project creation or just make a blank web.xml file in WebContent/WEB-INF.
The autogenerated plugin file looks like:
<?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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>YOUR_APP_NAME</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

Viewexpiredexception :No save view state could be found for identifier.though i have used client in web.xml

I am developed a tool in JSF,with UI in .xhtml.The tool is working fine in eclipse.Once i deployed in production server i got VIEWEXPIRED exception[no saved view state would be found for the identifier:] often.Once i cleared the cookies and run the tool,the tool was wroking for 70%.
I have used #view scope in managed bean in faces-config.
So i did the changes by
using STATE_SAVING_METHOD as client in web.xml.
Though i deployed and restart the server still I am facing the same issue.
I am sitting with this issue for more than a week.
Anyone help me for solving this issue.
Kindly help me by solving this issue in jsf itself.
Thanks for advance.
Could you please look into this thread(in case if you have missed this link) : [jsf vewexpiredexception][1]
i also faced the same issue. There can be multiple reasons for getting this exception. Scope of the bean should not play a role in this.
Solution 1.Add this code in your web.xml
<context-param>
<param-name>com.sun.faces.numberOfViewsInSession</param-name>
<param-value>150</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfLogicalViews</param-name>
<param-value>150</param-value>
</context-param>
default is 15, u can use some higher value.
Solution 2: Add this line to web.xml, Default is server, change it to client
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
For me 1st solution worked.

Disable oam.Flash.RENDERMAP.TOKEN

I am using Apache MyFaces 2.0. I notice that a cookie oam.Flash.RENDERMAP.TOKEN is getting created for each view, even though I am not using Flash scope and I have set org.apache.myfaces.DISABLE_FLASH_SCOPE=true.
How can I remove the oam.Flash.RENDERMAP.TOKEN cookie?
This is WebSphere specific issue
It's old thread, but it took me a while to find an answer, so I leave this for others... Should be:
org.apache.myfaces.FLASH_SCOPE_DISABLED
not DISABLE_FLASH_SCOPE. So in detail, add:
<context-param>
<param-name>org.apache.myfaces.FLASH_SCOPE_DISABLED</param-name>
<param-value>true</param-value>
</context-param>
to your web.xml.
Works good since 2.0.5.
The issue is fixed with WebSphere Fix Pack V8.0.0.6.
Refer http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg1PM73173

JSF 2 error handling doesn't work

I'm trying to do a simple forwarding to an error page in a JSF 2 application. The instructions everywhere seem simple enough but it just doesn't work for me. This is what I tried. I put the following in web.xml:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/pages/error.jsf</location>
</error-page>
I tried an exception-type java.lang.Exception, and I tried using error-code instead of the exception-type. I also tried to name the page (in the above snippet) error.xhtml, and I tried all this with an error.jsp page. Nothing works.
I'm testing this by simply disconnecting the database server so any attempt to log in causes an exception. And it's being displayed on the screen instead of the error page.
I'm using eclipse, tomcat 7, and myfaces 2.1.4. Also in my WEB-INF/lib I have primefaces-3.0.RC2 and prettyfaces-jsf2-3.3.2.
What am I doing wrong / not doing?
Have you shut down the error mechanisms of Facelets? In you web.xml file, you may need to have the following context-param:
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>false</param-value>
</context-param>
If you also use MyFaces, you need this additional context-param:
<context-param>
<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
<param-value>false</param-value>
</context-param>
This article may be useful to you.
Did you use any managed bean to process the error? If so, have you declared them? Check out this article.

Spring filters working flow

i am using spring mvc. for login whenever request comes it passes through various Filters to get the flow(as different flow for different types of users). please suggest me a good reference to Spring Filters. or a good example on it. how to configure context.xml,web.xml
Do you need something other than the spring security docs ?
This is the page from the official docs related to filters.
Filters need to be configured in both the application context.xml and the web.xml file in your project. Here are examples of each of these files and also a Login filter that I wrote for my application... Hope it helps.
Web.xml
<filter>
<filter-name>randomFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
Filter mappings also need to be specified in this file and the order in which these mappings occur decide which filter is called first.
<filter-mapping>
<filter-name>randomFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
In the application context.xml, we mention the filter path, for example:
<bean id="randomFilter" class="folderPath.RandomFilter"/>

Resources