Hello,
Actually, I have to change the design of a web application. A person had create the interface with the visual web and the library webui-jsf-suntheme.jar. For creating the new theme, I have to create a new jar. I use netbeans 6.1 on Ubuntu 8.04 and the following documentation:
http://webdev2.sun.com/woodstock-theme-doc/faces/creating-themes.html.
but when I try to do this I have an exception and I really don't know how to fix it. I don't find a forum for asking help so I decide to write this email.
for creating my new theme I did:
1. check out of the source code of the Woodstock project
2. I created the file archipelTheme.properties in the themes folder with this line :
theme.name=archipelTheme
theme.service-class=ArchipelThemeThemeService
(the rest of the file is the same of the theme-name.properties)
3. I created the clone : ant -Dtheme.name=archipelTheme cloneTheme buildTheme buildJsTheme
4. I modified the color for the element Btn2Hov_mjv4 in the file css/colorAndMedia.css
5. I created the jar files : ant -Dtheme.name=archipelTheme
Now I have to configure my netbeans project for using this new theme:
1. I created the folder WEB-INF/lib and put the file : /woodstock/themes/dist/webui-jsf-archipelTheme.jar
2. I added in the web.xml the lines :
<context-param>
<param-name>com.sun.webui.theme.THEME_RESOURCES</param-name>
<param-value>archipelTheme</param-value>
</context-param>
<context-param>
<param-name>com.sun.webui.theme.DEFAULT_THEME</param-name>
<param-value>archipelTheme</param-value>
</context-param>
3. I created the folder classes with the file archipelTheme.properties :
# The "styles" or "classmapper" property BUTTON1, which is
# referenced for primary 'button' components is overridden
# to include additional properties in the "MyBtn1_sun4" selector
# defined in app.css. The "_sun4" is required to ensure that
# the selector uniquely named in the page. It is a convention
# only and is defined by the suntheme version 4 theme.
# BUTTON1=Btn1_sun4 MyBtn1_sun4 BUTTON1_HOVER=Btn1Hov_sun4 MyBtn1Hov_sun4
# This property is a "page level" theme property in that the
# style sheet value of this property will be loaded in every
# page of the application. The file itself must be located
# along the web application's class path.
#
Theme.stylesheet=/arhcipelTheme.css
4. I created the folder classes/nls with the file archipelTheme.js :
It is the same of this file
http://webdev2.sun.com/woodstock-theme-doc/faces/theme/com/sun/webui/jsf/suntheme4_2-080402/javascript_uncompressed/theme/nls/suntheme.js
but the stylesheets change with this:
"stylesheets": {
"Theme.stylesheet" : "/archipelTheme.css"
/** "ie7": "/com/sun/webui/jsf/suntheme4_2-080402/css/ie7.css",
"gecko": "",
"defaultUncompressed": "",
"geckoUncompressed": "",
"ie7Uncompressed": "/com/sun/webui/jsf/suntheme4_2-080402/css_uncompressed/ie7.css",
"master": "/com/sun/webui/jsf/suntheme4_2-080402/css/css_master-all.css",
"safariUncompressed": "/com/sun/webui/jsf/suntheme4_2-080402/css_uncompressed/safari.css",
"masterUncompressed": "/com/sun/webui/jsf/suntheme4_2-080402/css_uncompressed/css_master.css",
"default": "",
"ie6": "/com/sun/webui/jsf/suntheme4_2-080402/css/ie.css",
"safari": "/com/sun/webui/jsf/suntheme4_2-080402/css/safari.css",
"ie6Uncompressed": "/com/sun/webui/jsf/suntheme4_2-080402/css_uncompressed/ie.css" */
},
Now when I running the application I have the following exception:
[#|2008-10-29T13:55:55.259+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=21;_ThreadName=httpSSLWorkerThread-8080-2;_RequestID=6f09cfc2-b79a-4746-bdc2-1819b6f71690;|WebModule[/ArchiPEL/Administration]null
java.lang.NullPointerException
at com.sun.webui.jsf.renderkit.widget.ImageRenderer.getProperties(ImageRenderer.java:161)
at com.sun.webui.jsf.renderkit.widget.RendererBase.encodeChildren(RendererBase.java:134)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUtilities.java:73)
at com.sun.webui.jsf.util.RenderingUtilities.renderSkipLink(RenderingUtilities.java:760)
at com.sun.webui.jsf.renderkit.html.TabSetRenderer.renderSkipLink(TabSetRenderer.java:321)
at com.sun.webui.jsf.renderkit.html.TabSetRenderer.encodeChildren(TabSetRenderer.java:179)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUtilities.java:73)
at com.sun.webui.jsf.renderkit.html.PanelGroupRenderer.encodeChildren(PanelGroupRenderer.java:80)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUtilities.java:73)
at com.sun.webui.jsf.renderkit.html.PanelGroupRenderer.encodeChildren(PanelGroupRenderer.java:80)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:320)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.render(PartialTraversalLifecycle.java:106)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at com.sagemParkeon.archipel.administration.web.servlet.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]
I need some help for fix the problem and I would like know if I used the good method for creating and using my new theme.
Thank you for helping
Créez votre adresse électronique prenom.nom_at_laposte.net
1 Go d'espace de stockage, anti-spam et anti-virus intégrés.