Seam 2.0 beta problem
kruno Jul 3, 2007 6:21 AMI started to migrate from seam 1.21 to 2.0 (jboss 4.2), I followed migration tutorial, and examples in seam 2.0.
The problem is when I try to call some bean with ajax4jsf component or tomahawk component I get exception, but with h:commandButton or s:button
things work.
Thanks in advance for any help Kruno.
Exception:
11:08:44,536 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception java.lang.NullPointerException at org.jboss.seam.el.SeamExpressionFactory.createMethodExpression(SeamExpressionFactory.java:76) at org.jboss.seam.jsf.UnifiedELMethodBinding.getMethodExpression(UnifiedELMethodBinding.java:63) at org.jboss.seam.jsf.UnifiedELMethodBinding.invoke(UnifiedELMethodBinding.java:50) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) at javax.faces.component.UICommand.broadcast(UICommand.java:383) at org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:180) at org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:158) at org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:346) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) .......
Here is jsp page:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://jboss.com/products/seam/taglib" prefix="s"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="r"%>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a"%>
<f:view>
<h:form id="forma">
<h:messages id="poruke"/><br>
<h:commandButton action="#{obradaTest.mjenjajGranu}" value="SUN HTML" />
<t:commandButton action="#{obradaTest.mjenjajGranu}" value="TOMAHAWK" />
<a:commandButton action="#{obradaTest.mjenjajGranu}" value="=AJAX" />
<s:button action="#{obradaTest.mjenjajGranu}" value="=SEAM" />
</h:form>
</f:view>
web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
version="2.5">
<!-- Apsolutna putanja do direktorija -->
<context-param>
<param-name>slike</param-name>
<param-value>/home/orka/slikeKORISNICI/</param-value>
</context-param>
<!-- Seam -->
<listener>
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.jsp</param-value>
</context-param>
<!-- MyFaces -->
<!--
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</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>
<!-- Propagate conversations across redirects -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.orka</url-pattern>
</servlet-mapping>
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Slika</servlet-name>
<servlet-class>orka.util.SlikaServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Slika</servlet-name>
<url-pattern>/slika/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>org.ajax4jsf.SKIN</param-name>
<param-value>#{postavkeAplikacija.izgled}</param-value>
</context-param>
<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>
<!-- extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages -->
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.) -->
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>
<session-config>
<!-- u minutama -->
<session-timeout>30</session-timeout>
</session-config>
</web-app>
faces-config.xml
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2"> <application> <locale-config> <default-locale>hr</default-locale> <supported-locale>hr</supported-locale> <supported-locale>en</supported-locale> </locale-config> </application> </faces-config>
packaging-build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="Packaging Generator" default="_packaging_generation_">
<target name="_packaging_generation_" depends="N65540,N65581,N65632,obrisi,kopiraj" />
<property environment="env"/>
<property name="putanjaDoLibova" value="${env.PUTANJADOLIBOVA}"/>
<property name="putanjaKopiraj" value="${env.PUTANJAKOPIRAJ}/kadrovska.ear"/>
<property name="putanjaDeploy" value="${env.PUTANJADEPLOY}/kadrovska.ear"/>
<!-- Putanja do direktorija na serveru gdje se nalaze slike djelatnika
IMPLEMENTIRATI
-->
<property name="slikeDjelatnici" value="/home/orka/slike/djelatnici"/>
<target name="N65540" description="kadrovska.jar">
<jar destfile="kadrovska.jar">
<zipfileset dir="resources">
<include name="seam.properties" />
</zipfileset>
<zipfileset dir="${putanjaDoLibova}/ext">
<include name="jbpm-jpdl.jar" />
</zipfileset>
<zipfileset dir="resources/META-INF" prefix="META-INF">
<include name="ejb-jar.xml" />
</zipfileset>
<zipfileset dir="resources/META-INF" prefix="META-INF">
<include name="persistence.xml" />
</zipfileset>
<zipfileset dir="bin" />
</jar>
</target>
<target name="N65581" description="kadrovska.war">
<jar destfile="kadrovska.war">
<zipfileset dir="${putanjaDoLibova}/seam" prefix="WEB-INF/lib">
<include name="jboss-seam-ui.jar" />
</zipfileset>
<zipfileset dir="${putanjaDoLibova}/ext" prefix="WEB-INF/lib">
<include name="tomahawk-1.1.6.jar" />
<include name="ajax4jsf-1.1.1.jar" />
<include name="richfaces-3.0.1.jar" />
<include name="commons-fileupload.jar"/>
<include name="commons-digester-1.6.jar"/>
<include name="commons-beanutils-1.7.0.jar"/>
<include name="commons-el-1.0.jar"/>
<include name="commons-lang-2.1.jar"/>
</zipfileset>
<zipfileset dir="resources/WEB-INF" prefix="WEB-INF" />
<zipfileset dir="view" />
<zipfileset dir="resources/slike" prefix="slike" />
<zipfileset dir="resources/css" prefix="css" />
<zipfileset dir="resources/javascript" prefix="javascript" />
</jar>
</target>
<target name="N65632" description="kadrovska.ear">
<jar destfile="kadrovska.ear">
<zipfileset dir="resources/META-INF" prefix="META-INF">
<include name="application.xml" />
</zipfileset>
<zipfileset dir="resources/META-INF" prefix="META-INF">
<include name="jboss-app.xml" />
</zipfileset>
<zipfileset dir="${putanjaDoLibova}/ext">
<include name="jboss-el.jar" />
</zipfileset>
<zipfileset dir="${putanjaDoLibova}/seam">
<include name="jboss-seam.jar" />
</zipfileset>
<zipfileset dir=".">
<include name="kadrovska.jar" />
</zipfileset>
<zipfileset dir=".">
<include name="kadrovska.war" />
</zipfileset>
<zipfileset dir="${putanjaDoLibova}/ext">
<include name="jbpm-jpdl.jar" />
</zipfileset>
<zipfileset dir="resources/pageflows" prefix="pageflows"/>
</jar>
</target>
<target name="obrisi" description="obrisi ear">
<delete file="${putanjaEar}">
</delete>
</target>
<target name="kopiraj" description="kopiraj ear">
<copy file="${putanjaKopiraj}" tofile="${putanjaDeploy}" />
</target>
</project>