@henriquenascimentobr escreveu:
Boa tarde!!! Quando tento gravar um registro no banco ocorre esse erro.
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name: Apache Tomcat/9.0.41
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Dec 3 2020 11:43:00 UTC
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 9.0.41.0
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jdk
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 11.0.1+13-LTS
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\Desenvolvimento\ws-java-web.metadata.plugins\org.eclipse.wst.server.core\tmp0
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\apache
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Desenvolvimento\ws-java-web.metadata.plugins\org.eclipse.wst.server.core\tmp0
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\apache
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Desenvolvimento\ws-java-web.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
dez 26, 2020 6:49:11 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
dez 26, 2020 6:49:11 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Loaded Apache Tomcat Native library [1.2.25] using APR version [1.7.0].
dez 26, 2020 6:49:11 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
dez 26, 2020 6:49:11 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
dez 26, 2020 6:49:11 PM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized [OpenSSL 1.1.1g 21 Apr 2020]
dez 26, 2020 6:49:12 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“http-nio-8080”]
dez 26, 2020 6:49:12 PM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [766] milliseconds
dez 26, 2020 6:49:12 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
dez 26, 2020 6:49:12 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.41]
dez 26, 2020 6:49:12 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [189] milliseconds.
dez 26, 2020 6:49:15 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jboss.classfilewriter.ClassFile$1 (file:/C:/Desenvolvimento/ws-java-web/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/chamados/WEB-INF/lib/jboss-classfilewriter-1.0.4.Final.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Please consider reporting this to the maintainers of org.jboss.classfilewriter.ClassFile$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
dez 26, 2020 6:49:21 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler [“http-nio-8080”]
dez 26, 2020 6:49:21 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [8710] milliseconds
Hibernate:
select
u1_0.idUsuario,
u1_0.dsEmail,
u1_0.dsSenha,
u1_0.nmUsuario,
u1_0.nrTelefone,
u1_0.idSetor,
u1_0.stUsuario
from
USUARIO as u1_0
Hibernate:
select
s1_0.idSetor,
s1_0.nmSetor
from
SETOR as s1_0
Hibernate:
select
next value for SEQ_USUARIO
from
rdb$database
Hibernate:
select
s1_0.idSetor,
s1_0.nmSetor
from
SETOR as s1_0
dez 26, 2020 6:49:41 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [default] in context with path [/chamados] threw exception
br.com.caelum.vraptor.InterceptionException: javax.persistence.RollbackException: Error while committing the transaction
at br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:69)
at br.com.caelum.vraptor.interceptor.StepInvoker.tryToInvoke(StepInvoker.java:55)
at br.com.caelum.vraptor.interceptor.StepInvoker$Proxy$_$$WeldClientProxy.tryToInvoke(Unknown Source)
at br.com.caelum.vraptor.interceptor.InterceptorExecutor.executeAround(InterceptorExecutor.java:75)
at br.com.caelum.vraptor.interceptor.InterceptorExecutor$Proxy$$$WeldClientProxy.executeAround(Unknown Source)
at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:85)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:75)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor$Proxy$$$WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.Try.run(Try.java:18)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.start(DefaultInterceptorStack.java:93)
at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$$$WeldClientProxy.start(Unknown Source)
at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:93)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: javax.persistence.RollbackException: Error while committing the transaction
at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:81)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:104)
at br.com.caelum.vraptor.jpa.JPATransactionInterceptor.commit(JPATransactionInterceptor.java:90)
at br.com.caelum.vraptor.jpa.JPATransactionInterceptor.intercept(JPATransactionInterceptor.java:75)
at br.com.caelum.vraptor.jpa.JPATransactionInterceptor$Proxy$$$WeldClientProxy.intercept(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
at br.com.caelum.vraptor.core.DefaultReflectionProvider.invoke(DefaultReflectionProvider.java:42)
at br.com.caelum.vraptor.core.DefaultReflectionProvider$Proxy$$$_WeldClientProxy.invoke(Unknown Source)
at br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:64)
… 50 more
Caused by: java.lang.NullPointerException
at org.hibernate.type.EntityType.toLoggableString(EntityType.java:514)
at org.hibernate.internal.util.EntityPrinter.toString(EntityPrinter.java:73)
at org.hibernate.internal.util.EntityPrinter.toString(EntityPrinter.java:117)
at org.hibernate.event.internal.AbstractFlushingEventListener.logFlushResults(AbstractFlushingEventListener.java:127)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:103)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:110)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1335)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:422)
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2655)
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:1823)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:442)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:183)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoordinatorImpl.java:40)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:281)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101)
… 62 moreArquivo edit.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>
Cadastro de UsuariosCadastro de Usuarios
<fmt:setLocale value=“pt_BR” scope=“session”/>
<ul> <c:forEach items="${ errors }" var="error"> <li> <fmt:message key="${ error.category }" /> ${ error.message } </li> </c:forEach> </ul> <input type="hidden" name="usuario.idUsuario" value="${ usuario.idUsuario }" /> <fmt:message key="nmUsuario" />:<input type="text" name="usuario.nmUsuario" value="${ usuario.nmUsuario }" /> <br> <br> <fmt:message key="dsEmail" />:<input type="text" name="usuario.dsEmail" value="${ usuario.dsEmail }" /> <br> <br> <fmt:message key="nrTelefone" />:<input type="text" name="usuario.nrTelefone" value="${ usuario.nrTelefone }" /> <br> <br> <fmt:message key="idSetor" />: <select name="usuario.setor.idSetor"> <option value="0">SELECIONE</option> <c:forEach items="${setores}" var="setor"> <option value="${setor.idSetor}" <c:if test="${setor.idSetor == usuario.setor.idSetor }">SELECTED</c:if>>${setor.nmSetor }</option> </c:forEach> </select> <br> <br> <fmt:message key="dsSenha" />:<input type="password" name="usuario.dsSenha" /> <br> <br> <fmt:message key="dsSenhaConfirm" />:<input type="password" name="usuario.dsSenhaConfirm" /> <br> <br> <fmt:message key="stUsuario" />: <select name="usuario.stUsuario"> <c:forEach items="${situacoes}" var="situacao"> <option value="${situacao}" <c:if test="${situacao.value == usuario.stUsuario.value }">SELECTED</c:if> >${situacao}</option> </c:forEach> </select> <br> <br> <button type="submit">Gravar</button> <button onclick="forms[0].action='/chamados/usuario/delete'">Excluir</button> <button onclick="forms[0].action='/chamados/usuario/list'">Voltar</button>
package br.com.jsm.chamados.controllers;
import java.util.List;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.Query;import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.validator.I18nMessage;
import br.com.caelum.vraptor.validator.Validator;
import br.com.jsm.chamados.business.SetorBO;
import br.com.jsm.chamados.business.UsuarioBO;
import br.com.jsm.chamados.models.UsuarioModel;
import br.com.jsm.chamados.types.StUsuarioType;/**
- Classe Destinada para realizar o CRUD
- C - CREATE
- R - READ
- U - UPDATE
- D - DELETE
- @author Usuário
*/
@Controller
public class UsuarioController {@Inject private EntityManager entityManager; @Inject private Result result; @Inject private Validator validator; private UsuarioBO usuarioBO; private SetorBO setorBO; public void edit(UsuarioModel usuario) { setorBO = new SetorBO(); result.include("setores", setorBO.getListSetor(entityManager)); result.include("situacoes", StUsuarioType.values()); result.include("usuario", usuario); } @SuppressWarnings("unchecked") public void list() { Query query = this.entityManager.createQuery("from UsuarioModel"); List<UsuarioModel> usuarios = query.getResultList(); result.include("usuarios", usuarios); } public void save(UsuarioModel usuario) throws Exception { validator.validate(usuario); if (usuario.getSetor().getIdSetor() == 0) { validator.add(new I18nMessage("idSetor", "not.blank")); } if (usuario.getStUsuario().equals(StUsuarioType.SELECIONE)) { validator.add(new I18nMessage("stUsuario", "not.blank")); } if (! validator.hasErrors()) { if(usuario.getDsSenha() != null && ! usuario.getDsSenha().equals("")) { if (! usuario.getDsSenha().equals(usuario.getDsSenhaConfirm())) { validator.add(new I18nMessage("dsSenha", "senha.nao.confere")); } } } validator.onErrorForwardTo(this).edit(usuario); usuarioBO = new UsuarioBO(); if (usuario.getDsSenha() != null && ! usuario.getDsSenha().equals("")) { String dsSenha = usuarioBO.encryptPassword(usuario.getDsSenha()); usuario.setDsSenha(dsSenha); }else { if (usuario.getIdUsuario() != 0 ) { UsuarioModel usuarioBD = this.entityManager.find(UsuarioModel.class, usuario.getIdUsuario()); usuario.setDsSenha(usuarioBD.getDsSenha()); } } if (usuario.getIdUsuario() == 0) { create(usuario); }else { update(usuario); } } public void create(UsuarioModel usuario) { this.entityManager.persist(usuario); result.forwardTo(this).edit(null); } public void read(UsuarioModel usuario) { UsuarioModel setorBD = this.entityManager.find(UsuarioModel.class, usuario.getIdUsuario()); result.forwardTo(this).edit(setorBD); } public void update(UsuarioModel usuario) { this.entityManager.merge(usuario); result.forwardTo(this).edit(null); } public void delete(UsuarioModel usuario) { UsuarioModel setorBD = this.entityManager.find(UsuarioModel.class, usuario.getIdUsuario()); this.entityManager.remove(setorBD); result.forwardTo(this).edit(null); }
}
package br.com.jsm.chamados.models;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;import org.hibernate.validator.constraints.NotBlank;
import br.com.jsm.chamados.types.StUsuarioType;
/**
- Classe Usuário
*Essa classe servira para registro dos dados dos Usuários
*
- id = Idendificadores
- nm = Nome nmUsuario
- ds = Descrição dsChamado
- nr = Numero nrCpf
- tp = Tipo tpChamado
- st = Situação stChamado
*/@Entity
//
@Table(name = “USUARIO”)
public class UsuarioModel {@Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQUSUARIO") @SequenceGenerator(name = "SEQUSUARIO", sequenceName = "SEQ_USUARIO", initialValue = 0, allocationSize = 1) private int idUsuario; @NotBlank private String nmUsuario; private String nrTelefone; @NotBlank private String dsEmail; //Setor; @NotNull @OneToOne @JoinColumn(name = "idSetor") private SetorModel setor; @NotBlank private String dsSenha; @Transient private String dsSenhaConfirm; //Situação @NotNull @Enumerated(EnumType.ORDINAL) private StUsuarioType stUsuario; public int getIdUsuario() { return idUsuario; } public void setIdUsuario(int idUsuario) { this.idUsuario = idUsuario; } public String getNmUsuario() { return nmUsuario; } public void setNmUsuario(String nmUsuario) { this.nmUsuario = nmUsuario; } public String getNrTelefone() { return nrTelefone; } public void setNrTelefone(String nrTelefone) { this.nrTelefone = nrTelefone; } public String getDsEmail() { return dsEmail; } public void setDsEmail(String dsEmail) { this.dsEmail = dsEmail; } public String getDsSenha() { return dsSenha; } public void setDsSenha(String dsSenha) { this.dsSenha = dsSenha; } public SetorModel getSetor() { return setor; } public void setSetor(SetorModel setor) { this.setor = setor; } public StUsuarioType getStUsuario() { return stUsuario; } public void setStUsuario(StUsuarioType stUsuario) { this.stUsuario = stUsuario; } public String getDsSenhaConfirm() { return dsSenhaConfirm; } public void setDsSenhaConfirm(String dsSenhaConfirm) { this.dsSenhaConfirm = dsSenhaConfirm; }
}
Mensagens: 3
Participantes: 2