0
This is the error presented:
ADVERTÊNCIA: Method not found: [email protected]()
javax.el.MethodNotFoundException: Method not found: [email protected]()
at org.apache.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:268)
at org.apache.el.parser.AstValue.invoke(AstValue.java:238)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:813)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
mai 24, 2015 3:30:51 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/ProjetoImagem] threw exception [Method not found: [email protected]()] with root cause
javax.el.MethodNotFoundException: Method not found: [email protected]()
at org.apache.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:268)
at org.apache.el.parser.AstValue.invoke(AstValue.java:238)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:813)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
This is my page
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<style type="text/css">
.ui-widget {
font-size: 11px !important;
font-family: Verdana, Arial, Tahoma;
font-weight: light;
}
</style>
</h:head>
<h:body>
<h:form id="form" enctype="multipart/form-data">
<p:growl id="msgs" showDetail="false" showSummary="true" />
<p:panel>
<h:panelGrid columns="2">
<h:outputText value="Nome:" />
<p:inputText value="#{produtoBean.produto.nome}" />
<h:outputText value="Preço:" />
<p:inputText value="#{produtoBean.produto.preco}" />
<h:outputText value="Descição da Imgem:" />
<p:inputText value="#{produtoBean.foto.descricao}" />
<h:outputText value="Imgem:" />
<p:fileUpload value="#{produtoBean.file}" mode="simple" />
<p:commandButton value="Salvar" action="#{produtoBean.salvaProduto()}"
update=":form:msgs"
actionListener="#{produtoBean.upload()}" ajax="false"/>
<p:commandButton value="Limpar" onclick="form.reset()" />
</h:panelGrid>
</p:panel>
</h:form>
</h:body>
</html>
This is my class Bean
package com.gravar.imagem;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.apache.commons.fileupload.FileUpload;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
import com.gravar.imagem.dao.FotoDAO;
import com.gravar.imagem.dao.ProdutoDAO;
import com.gravar.imagem.model.Foto;
import com.gravar.imagem.model.Produto;
@ManagedBean
@SessionScoped
public class ProdutoBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String destination = "C:\\tmp\\";
private UploadedFile file;
private List<Produto> produtos;
private Produto produto = new Produto();
private Produto produtoSelecionado = new Produto();
private ProdutoDAO produtoDAO;
private List<Foto> fotos;
private Foto foto = new Foto();
private FotoDAO fotoDAO = new FotoDAO();
public ProdutoBean() {
produtoDAO = new ProdutoDAO();
fotoDAO = new FotoDAO();
produtos = produtoDAO.listAll();
}
public void salvaProduto() {
try {
produtoDAO.save(produto);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
produto = new Produto();
produtos = produtoDAO.listAll();
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_INFO,
"Produto adicionado", "Produto adicionado"));
}
}
public void salvaFoto() {
try {
fotoDAO.save(foto);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
foto = new Foto();
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_INFO,
"Foto adicionada", "Foto adicionada"));
}
}
public void TransferFile(String fileName, InputStream in) {
try {
OutputStream out = new FileOutputStream(new File(destination
+ fileName));
int reader = 0;
byte[] bytes = new byte[(int) getFile().getSize()];
while ((reader = in.read(bytes)) != -1) {
out.write(bytes, 0, reader);
}
in.close();
out.flush();
out.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
public void upload(FileUploadEvent event) {
String extValidate;
if (getFile() != null) {
String ext = event.getFile().getFileName();
fotoDAO.save(foto);
foto.setImagem(ext);
if (ext != null) {
extValidate = ext.substring(ext.indexOf(".") + 1);
} else {
extValidate = "null";
}
if (extValidate.equals("jpg") || extValidate.equals("png")) {
try {
TransferFile(getFile().getFileName(), getFile()
.getInputstream());
} catch (IOException ex) {
Logger.getLogger(FileUpload.class.getName()).log(
Level.SEVERE, null, ex);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
"Perigo, erro ao fazer Upload do arquivo"));
}
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Sucesso", getFile()
.getFileName()
+ "seu upload. conteudo"
+ getFile().getContentType()
+ "tamanho"
+ getFile().getSize()));
} else {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Perigo",
"o arquivo tem que ser pdf"));
}
} else {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
"Perigo, selecione o arquivo"));
}
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
public List<Produto> getProdutos() {
return produtos;
}
public void setProdutos(List<Produto> produtos) {
this.produtos = produtos;
}
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public Produto getProdutoSelecionado() {
return produtoSelecionado;
}
public void setProdutoSelecionado(Produto produtoSelecionado) {
this.produtoSelecionado = produtoSelecionado;
}
public ProdutoDAO getProdutoDAO() {
return produtoDAO;
}
public void setProdutoDAO(ProdutoDAO produtoDAO) {
this.produtoDAO = produtoDAO;
}
public List<Foto> getFotos() {
return fotos;
}
public void setFotos(List<Foto> fotos) {
this.fotos = fotos;
}
public Foto getFoto() {
return foto;
}
public void setFoto(Foto foto) {
this.foto = foto;
}
public FotoDAO getFotoDAO() {
return fotoDAO;
}
public void setFotoDAO(FotoDAO fotoDAO) {
this.fotoDAO = fotoDAO;
}
}
The problem is that in EL you referenced the method
upload
no parameters, and in your bean you only have one methodupload
with a parameter.– Wakim
I didn’t understand what you said.
– wladyband