Esta ocorrendo este erro quando clico no botão salvar capitulo.
Console
ago 02, 2016 9:53:29 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
ADVERTÊNCIA: #{cadastrarCursoBean.salvarCapitulo}: java.lang.NullPointerException
javax.faces.FacesException: #{cadastrarCursoBean.salvarCapitulo}: java.lang.NullPointerException
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
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:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1419)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:44)
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)
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
... 29 more
Caused by: java.lang.NullPointerException
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPath.parse(Unknown Source)
at sun.nio.fs.WindowsFileSystem.getPath(Unknown Source)
at java.nio.file.Paths.get(Unknown Source)
at br.com.caelum.livraria.bean.CadastrarCursoBean.salvarCapitulo(CadastrarCursoBean.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 30 more
ago 02, 2016 9:53:29 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
GRAVE: javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
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:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1419)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:44)
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)
Caused by: java.lang.NullPointerException
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at sun.nio.fs.WindowsPath.parse(Unknown Source)
at sun.nio.fs.WindowsFileSystem.getPath(Unknown Source)
at java.nio.file.Paths.get(Unknown Source)
at br.com.caelum.livraria.bean.CadastrarCursoBean.salvarCapitulo(CadastrarCursoBean.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 30 more
cadastrarCurso.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!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:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition template="_templateProfessor.xhtml">
<ui:define name="titulo">
<p:outputPanel>Cadastrar Curso</p:outputPanel>
</ui:define>
<ui:define name="conteudo">
<p:messages globalOnly="true" />
<h:form id="cadastrarCurso" enctype="multipart/form-data">
<p:fieldset legend="Dados do Curso">
<h:panelGrid columns="3">
<p:outputLabel value="Titulo" for="titulo" />
<p:outputLabel value="Descrição" for="descricao" />
<p:outputLabel value="Preço" for="preco" />
<p:inputText id="titulo" value="#{cadastrarCursoBean.curso.titulo}" />
<p:inputText id="descricao"
value="#{cadastrarCursoBean.curso.descricao}" />
<p:inputText id="preco" value="#{cadastrarCursoBean.curso.valor}" />
</h:panelGrid>
</p:fieldset>
<p:fieldset legend="Capitulos">
<h:panelGrid columns="4">
<p:outputLabel value="Titulo do Capitulo:" for="tituloCapitulo" />
<p:inputText id="tituloCapitulo"
value="#{cadastrarCursoBean.capitulo.titulo}" />
<p:fileUpload mode="advanced"
fileUploadListener="#{cadastrarCursoBean.upload}" />
<p:commandButton value="Salvar Capitulo"
action="#{cadastrarCursoBean.salvarCapitulo}" update="@form"
process="@form" />
</h:panelGrid>
</p:fieldset>
<p:dataList id="listaCapitulos"
value="#{cadastrarCursoBean.capitulos}" var="capitulo"
type="definition">
<f:facet name="header">
Capitulos
</f:facet>
#{capitulo.titulo}
<p:commandButton icon="fa fa-fw fa-edit"
actionListener="#{cadastrarCursoBean.alterar(capitulo)}"
update="@form" process="@this" />
<p:commandButton icon="fa fa-fw fa-remove"
action="#{cadastrarCursoBean.remover(capitulo)}" update="@form"
process="@this" />
</p:dataList>
</h:form>
</ui:define>
</ui:composition>
</html>
CadastrarCursoBean.class
package br.com.caelum.livraria.bean;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.UploadedFile;
import br.com.caelum.livraria.dao.CapituloDao;
import br.com.caelum.livraria.dao.CursoDao;
import br.com.caelum.livraria.dao.VideoAulaDao;
import br.com.caelum.livraria.modelo.Capitulo;
import br.com.caelum.livraria.modelo.Curso;
import br.com.caelum.livraria.modelo.VideoAula;
@ManagedBean
@ViewScoped
public class CadastrarCursoBean {
private Curso curso = new Curso();
private VideoAula videoAula = new VideoAula();
private Capitulo capitulo = new Capitulo();
private List<Capitulo> capitulos = new ArrayList();
private UploadedFile arquivo;
public UploadedFile getArquivo() {
return arquivo;
}
public void setArquivo(UploadedFile arquivo) {
this.arquivo = arquivo;
}
public Capitulo getCapitulo() {
return capitulo;
}
public void setCapitulo(Capitulo capitulo) {
this.capitulo = capitulo;
}
public void upload(FileUploadEvent evento) {
try {
UploadedFile arquivo = evento.getFile();
videoAula.setNomeVideo(arquivo.getFileName());
Path arquivoTemp = Files.createTempFile(null, null);
Files.copy(arquivo.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING);
videoAula.setCaminho(arquivoTemp.toString());
} catch (IOException erro) {
erro.printStackTrace();
}
}
public void salvarCapitulo() {
try {
if (this.capitulo.getId() == null) {
Path origem = Paths.get(videoAula.getCaminho());
System.out.println(videoAula.getCaminho());
Path destino = Paths.get("C:/Users/Gabriel-gbr/workspace/Elearning/WebContent/resources/videoAulas/"
+ videoAula.getNomeVideo());
Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING);
new VideoAulaDao().adiciona(videoAula);
capitulo.setVideoAula(videoAula);
new CapituloDao().adiciona(capitulo);
capitulos.add(capitulo);
this.videoAula = new VideoAula();
this.capitulo = new Capitulo();
} else {
Path origem = Paths.get(videoAula.getCaminho());
System.out.println(videoAula.getCaminho());
Path destino = Paths.get("C:/Users/Gabriel-gbr/workspace/Elearning/WebContent/resources/videoAulas/"
+ videoAula.getNomeVideo());
Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING);
System.out.println(this.capitulo.getId());
System.out.println(this.videoAula.getId());
new VideoAulaDao().atualiza(videoAula);
this.capitulo.setVideoAula(videoAula);
new CapituloDao().atualiza(capitulo);
int index = capitulos.indexOf(capitulo);
capitulos.remove(index);
capitulos.add(capitulo);
System.out.println(capitulos.size());
this.videoAula = new VideoAula();
this.capitulo = new Capitulo();
}
} catch (IOException erro) {
erro.printStackTrace();
}
}
public void alterar(Capitulo capitulo) {
this.capitulo = capitulo;
this.videoAula = capitulo.getVideoAula();
}
public void remover(Capitulo capitulo) {
new CapituloDao().remove(capitulo);
capitulos.remove(capitulo);
}
public void cadastrarCurso() {
if (!capitulos.isEmpty()) {
new CursoDao().adiciona(this.curso);
} else {
}
}
public VideoAula getVideoAula() {
return videoAula;
}
public void setVideoAula(VideoAula videoAula) {
this.videoAula = videoAula;
}
public List<Capitulo> getCapitulos() {
return capitulos;
}
public void setCapitulos(List<Capitulo> capitulos) {
this.capitulos = capitulos;
}
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
}