hi list, i`m newbee with jsf, it gives me this exception:
javax.servlet.ServletException: Error calling action method of component
with id formulario:boton
javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
causa raĆz
javax.faces.FacesException: Error calling action method of component with id
formulario:boton
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
de.mindmatters.faces.application.DelegatingActionListener.processAction(DelegatingActionListener.java:106)
javax.faces.component.UICommand.broadcast(UICommand.java:106)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:274)
org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:250)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:405)
de.mindmatters.faces.lifecycle.InvokeApplicationPhase.executePhase(InvokeApplicationPhase.java:43)
de.mindmatters.faces.lifecycle.AbstractPhase.execute(AbstractPhase.java:37)
de.mindmatters.faces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:166)
de.mindmatters.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:211)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
i`m using myfaces 1.1.4 with jdk 1.6, tomcat 5.5.17.
my web.xml is
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 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_4.xsd">
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
<!-- listener de spring-->
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>TilesServet</servlet-name>
<servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/tiles-defs.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
</web-app>
my jsf is
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<f:view>
<f:loadBundle basename="MessageResources" var="msg"/>
<head>
<title>
${msg.titulo}
</title>
</head>
<body>
<h:form id="formulario">
<h:inputText id="campoQue" value="#{yellProxy.campoQue}" />
<h:inputText id="campoDonde" value="#{yellProxy.campoDonde}" />
<h:commandButton id="boton" value="#{msg.boton}"
action="#{yellProxy.encuentra}"/>
</h:form>
</f:view>
</body>
</html>
yellPoxy.java
/*
* YellProxy.java
*
* Created on 13 de septiembre de 2007, 11:59
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package es.yell.frontlite.servlets;
import java.util.Collection;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import org.springframework.beans.factory.InitializingBean;
import es.yell.frontlite.service.impl.*;
import org.springframework.util.Assert;
/**
* Esta clase va a hacer las siguientes acciones:
* Averiguar quien es el cliente, IE, firefox, PDA.
* Averiguar si tiene el js activado.
* en funcion si tiene el js activado o no, redirijo la peticion a un
servicio u otro
* la peticion que hace el cliente
* @author operador
*/
public class YellProxy{
//campo que sirve para almacenar el resultado de la operacion que se
hace en el cliente para ver si js esta activado.
private String jsActivado;
//campo que representa la identidad del navegador, IE, firefox...
private String quienSoy;
//campos que van a almacenar los campos que y donde de la pagina ppal.
private String campoQue;
//a este campo habra que destokenizar para rellenar los siguientes
campos, direccion, localidad y cp
private String campoDonde;
//atributo que pasamos al servicio con los parametros que nos da el
formulario de la jsp
private BusquedaVO busquedaVO;
//el servicio que nos da acceso a la capa de datos.INYECTADO
private SrvBusquedaNoxtrumServiceImpl servicio;
//atributo q contiene toda la informacion cuando utilizamos AJAX
private String xml;
//atributo q contiene toda la informacion cuando no utilizamos AJAX
private Collection coleccion;
/** Creates a new instance of YellProxy */
public YellProxy() {
}
/**
*Este metodo responde al evento del boton encuentra que esta en la
pagina principal.
*Basicamente va a destokenizar el campo campoDonde en los subcampos
Direccion, localidad y CP.
*Tambien y dependiendo de si el cliente tiene activado o no el js,
ejecutaremos un servicio u otro.
*/
public String encuentra(){
//deja los atributos privados rellenos.
String mensaje ;
crearYRellenarBusquedaVO();
//Javscript activado
if (getJsActivado()!=null &&
getJsActivado().compareToIgnoreCase("S") == 0){
//invocamos servicio adecuado
setXml(this.getServicio().obtenerResultadosJSactivado(this.getBusquedaVO()));
mensaje="succesJS";
}else{
//javascript no activado
this.setColeccion(this.getServicio().obtenerResultadosJSdesactivado(this.getBusquedaVO()));
mensaje="succesNoJS";
}
return mensaje;
}
private void crearYRellenarBusquedaVO() {
if (busquedaVO == null){
busquedaVO = new BusquedaVO();
}
busquedaVO.setCampoQue(this.getCampoQue());
busquedaVO.setCampoDonde(this.getCampoDonde());
}
public String getCampoQue() {
return campoQue;
}
public void setCampoQue(String campoQue) {
this.campoQue = campoQue;
}
public String getCampoDonde() {
return campoDonde;
}
public void setCampoDonde(String campoDonde) {
this.campoDonde = campoDonde;
}
public String getJsActivado() {
return jsActivado;
}
public void setJsActivado(String jsActivado) {
this.jsActivado = jsActivado;
}
public String getQuienSoy() {
return quienSoy;
}
public void setQuienSoy(String quienSoy) {
this.quienSoy = quienSoy;
}
public BusquedaVO getBusquedaVO() {
return busquedaVO;
}
public void setBusquedaVO(BusquedaVO busquedaVO) {
this.busquedaVO = busquedaVO;
}
public String getXml() {
return xml;
}
public void setXml(String xml) {
this.xml = xml;
}
public Collection getColeccion() {
return coleccion;
}
public void setColeccion(Collection coleccion) {
this.coleccion = coleccion;
}
public SrvBusquedaNoxtrumServiceImpl getServicio() {
return servicio;
}
public void setServicio(SrvBusquedaNoxtrumServiceImpl servicio) {
this.servicio = servicio;
}
}
thx in advance!
--
View this message in context:
http://www.nabble.com/javax.servlet.ServletException%3A-Error-calling-action-method-of-component-with-id-tf4508679.html#a12858321
Sent from the MyFaces - Users mailing list archive at Nabble.com.