Ir ao conteúdo
  • Cadastre-se

remazela

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Tudo que remazela postou

  1. Caros amigos saudações... Estou com um pequeno problema com o Notebook novo que comprei. Os novos note não vem como fazendo parte o LEITOR DE DVD e CD nos note, ou seja, são os chamados SLIM. Bom, adquiri um Leitor de DVD e CD externo, após conectar no NOTEBOOK, não apareceu nada sobre instalação/reconhecimento do aparelho. Como faço para que o Windows possa reconhecer e mostrar no Meu Computador a unidade de Leitor DVD / CD externo ? Grato, Cesar
  2. Caros amigos saudações... gostaria de tirar uma dúvida com os amigos refente a nova versão do MySQL Workbench 8.0.16. após instalar o Workbench acaba interferindo no funcionamento do XAMPP (principalmente no Mysql) e para desisntalá-lo somente formatando a máquina. alguém poderia me ajudar como faço para após instalar a versão atual do Workbench, não interferir no funcionamento do XAMPP. Grato, Cesar
  3. Amigos, Adquiri um novo notebook da marca Positivo, na verdade comprei hoje. Após iniciar o note, apareceu esses link ao lado. Gostaria de saber se tem como tirar isso.
  4. Caros amigos Saudações... Por favor, alguém sabe me ajudar como faço para tirar as propaganda que aparece na área de trabalho do windows. Aparece na lateral direita da área de trabalho. Anexei a imagem para os amigos entender. Grato, Renato
  5. Caro amigo Lucas Cria um arquivo apenas de conexão desta forma: <?php //Arquivo config.php //DB configuração Constants define('_HOST_NAME_', 'localhost'); define('_USER_NAME_', 'root'); define('_DB_PASSWORD', ''); define('_DATABASE_NAME_', 'nomeBancoDados'); //PDO Conexão com o Banco de Dados try { $conexao = new PDO('mysql:host='._HOST_NAME_.';dbname='._DATABASE_NAME_, _USER_NAME_, _DB_PASSWORD); $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $error_conecta) { echo 'ERROR: ' . $error_conecta->getMessage(); } ?> Depois no seu arquivo que for usar para INSERIR, faz desta forma: <?php //Chama a pasta de Conexão include"Conectar/config.php"; if(isset($_POST['executar']) && $_POST['executar'] == 'Gravar'){ $cotaQtde = strip_tags(trim($_POST['respQtde'])); $cotaVlr = strip_tags(trim($_POST['respValor'])); $sql_pr = 'INSERT INTO cotaResp (cotaQtde, cotaVlr) '; $sql_pr .= 'VALUES (:cotaQtde, :cotaVlr)'; try{ $query_pr = $conecta->prepare($sql_pr); $query_pr->bindValue(':cotaQtde',$cotaQtde,PDO::PARAM_STR); $query_pr->bindValue(':cotaVlr',$cotaVlr,PDO::PARAM_STR); $query_pr->execute(); echo '<div class="comunicado">Produto Cadastrado com Sucesso!</div><!--aviso-->'; //Redirecionando para Caixa de Enrada do Cliente echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=cadastro/cot_itens&cotaNum='.$cotaNum.'&clieId='.$clieId.'" />'; } catch(PDOexception $error_novoPr) { echo 'Erro ao Cadastrar o Produto '.$error_novoPr->getMessage(); } } //Fim do IF ?> Espero ter ajudado e esclarecido. Renato
  6. Caros amigos Recorro ajuda dos amigos referente a um erro que não consigo entender. Tenho 6 Tabelas distintas que preciso buscar informações, são elas: Cliente, Produto, Fornecedores , Cotação, CotaçãoItens e CotaçãoRespostas. O problema ocorre qdo coloco GROUP BY, trás a resposta do fornecedor, mas repete para os fornecedores diferente sempre a mesma: quantidade, valor unitário e total. Abaixo a imagem da tela como exemplo para entender. Quando mostra na tela, mostra conforme abaixo: 3 – Digity Ltda CÓDIGO NOME 3.3 MATERIAL DE ESCRITÓRIO 101 - CADERNO UNIVERSITÁRIO 1-MAT 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 131 - RÉGUA 30CM - ACRÍLICA 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 140 - CANETA BIC - AZUL 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 150 - ESTILETE MÉDIO 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 6.00 Total.: 30.00 1 - ABC Med Qtde..: 5 Valor.: 7.00 Total.: 35.00 Como podem observar, repetiu as mesmas quantidades, valor unitários e Totais para os fornecedores diferente. Abaixo o código fonte que estou usando: <?php function mostraResposta(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacao.cotaNumero, cotacao.cotaTitulo, clientes.clienteId, clientes.nome FROM clientes INNER JOIN cotacao ON cotacao.cotaNumero = '$cotaNum' Where clientes.clienteId = '$cliente' "; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $clie = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($clie != $clienteId) { if(!is_null($clie)) { echo "</table>"; } // Fechando a tabela da ultima categoria impressa antes // de abrir a nova echo " <br/><br/>"; echo "<h1>{$clienteId} - {$nome}</h1>"; echo "<table>"; echo " <tr>"; echo " <th>CÓDIGO</th>"; echo " <th>NOME</th>"; echo " </tr>"; $clie = $clienteId; } //Fecha IF echo " <tr>"; echo " <td><div class='cod-produto'>{$cotaNumero}</div></td>"; echo " <td><div class='nome-produto'>{$cotaTitulo}</div></td>"; echo " </tr>"; } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } //Fecha If $num } ?> <?php function mostraRespostaItens(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacaoItens.cotaNumero, cotacaoItens.codProdClie, cotacaoItens.clienteId, produto.clienteId, produto.codProdClie, produto.produtoDescr FROM produto INNER JOIN cotacaoItens ON cotacaoItens.codProdClie = produto.codProdClie Where cotacaoItens.clienteId = '$cliente' AND cotacaoItens.clienteId = produto.clienteId "; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $codProdClie) { if(!is_null($prod)) { echo "</table>"; } // Fechando a tabela do último Produto impresso antes de abrir a nova echo " <br/>"; echo "<h2>{$codProdClie} - {$produtoDescr}</h2>"; echo "<table border='0' cellpadding='3' cellspacing='2' >"; mostraRespFornec(); } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> <?php function mostraRespFornec(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacaoResposta.cotaRespId, cotacaoResposta.cotaNumero, cotacaoResposta.codProdClie, cotacaoResposta.cotaOferta, cotacaoResposta.fornecedorId, cotacaoResposta.cotaRespQtde, cotacaoResposta.cotaRespVlr, cotacaoResposta.cotaRespTotal, fornecedores.fornecedorId, fornecedores.nome, produto.produtoId, produto.codProdClie, produto.produtoDescr, produto.clienteId FROM produto INNER JOIN (cotacaoResposta INNER JOIN fornecedores ON cotacaoResposta.fornecedorId = fornecedores.fornecedorId) ON cotacaoResposta.codProdClie = produto.codProdClie WHERE cotacaoResposta.cotaNumero = '$cotaNum' AND cotacaoResposta.cotaOferta = '2' GROUP BY fornecedores.fornecedorId ORDER BY cotacaoResposta.cotaRespVlr ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while($row = $stmt->fetch($prod)){ extract($row); if($prod != $fornecedorId) { if(!is_null($prod)) { echo "</table>"; } echo " <tr style='color:#1C1C71; font-variant:small-caps; font:16px Arial, Helvetica, sans-serif; font-weight: bold;'>"; echo " <td><div class='fornec'>{$fornecedorId} - {$nome}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='no'>Qtde..: {$cotaRespQtde}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Valor.: {$cotaRespVlr}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Total.: {$cotaRespTotal}</div></td>"; echo " </tr>"; echo " <td>&nbsp;</td>"; } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> Como faço para corrigir o suposto erro ? Grato, Renato
  7. Caros amigos Por favor, me perdoa por recorrer ao auxílio dos amigos, mas infelizmente estou montando uma Lista(Resposta) na Tela que está me deixando LOUCO. Preciso mostrar o seguinte: PRODUTO X resposta 3 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 1 - vlr: R$ 0,03 PRODUTO Y resposta 1 - vlr: R$ 0,10 resposta 3 - vlr: R$ 0,30 resposta 2 - vlr: R$ 0,50 PRODUTO Z resposta 2 - vlr: R$ 0,15 resposta 1 - vlr: R$ 0,30 resposta 3 - vlr: R$ 0,40 Fiz várias tentativas e cheguei a um suposto resultado +/- favorável. Usei a opção de GROUP BY, agrupou todos os fornecedores, mas infelizmente trás na tela os mesmo valores e quantidade. O GROUP BY, trás assim: PRODUTO X resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 PRODUTO Y resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 PRODUTO Z resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 Obs.: cada resposta tem quantidade e valores distintos. Abaixo o código que estou utilizando: //Aqui faço o cabeçalho do Titulo //códigoEmpresa - descriçãoEmpresa <?php function mostraResposta(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT t.cotaId, t.cotaNumero, t.cotaTitulo, t.cotaStatus, t.clienteId, c.clienteId, c.nome FROM cotacao t, clientes c WHERE c.clienteId = '$cliente' AND t.clienteId = '$cliente' AND t.cotaNumero = '$cotaNum' ORDER BY t.clienteId, t.cotaTitulo ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $clie = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($clie != $clienteId) { if(!is_null($clie)) { echo "</table>"; } // Fechando a tabela da ultima categoria impressa antes // de abrir a nova echo " <br/><br/>"; echo "<h1>{$clienteId} - {$nome}</h1>"; echo "<table>"; echo " <tr>"; echo " <th>CÓDIGO</th>"; echo " <th>NOME</th>"; echo " </tr>"; $clie = $clienteId; } //Fecha IF echo " <tr>"; echo " <td><div class='cod-produto'>{$cotaNumero}</div></td>"; echo " <td><div class='nome-produto'>{$cotaTitulo}</div></td>"; echo " </tr>"; } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } //Fecha If $num } ?> //Aqui trago todos os produtos que a empresa quiz cotar //códigoProduto - descriçãoProduto <?php function mostraRespostaItens(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT i.cotaItensId, i.cotaNumImport, i.codProdClie, i.cotaQtde, i.cotaComenta, i.cotaVerTxt, i.cotaId, i.clienteId, i.cotaNumero, p.produtoId, p.codProdClie, p.produtoDescr, p.clienteId FROM cotacaoItens i, produto p WHERE i.codProdClie = p.codProdClie AND i.cotaNumero = '$cotaNum' AND i.clienteId = p.clienteId ORDER BY i.cotaNumero ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $codProdClie) { if(!is_null($prod)) { echo "</table>"; } // Fechando a tabela do último Produto impresso antes de abrir a nova echo " <br/>"; echo "<h2>{$codProdClie} - {$produtoDescr}</h2>"; echo "<table border='0' cellpadding='3' cellspacing='2' >"; //Chamo as respostas dos fornecedores mostraRespFornec(); } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> //Aqui trago todos os fornecedores que responderam, com seus valores e quantidade //qdo agrupo os fornecedores, traz sempre os mesmo valores e quantidade <?php function mostraRespFornec(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT r.cotaRespId, r.cotaItensId, r.cotaNumero, r.codProdClie, r.cotaOferta, r.fornecedorId, r.cotaRespQtde, r.cotaRespVlr, r.cotaRespTotal, f.fornecedorId, f.nome, i.cotaItensId, i.cotaNumero, i.codProdClie FROM cotacaoResposta r, fornecedores f, cotacaoItens i WHERE i.codProdClie = r.codProdClie AND r.cotaOferta = '2' AND r.fornecedorId = f.fornecedorId GROUP BY f.fornecedorId ORDER BY r.cotaRespVlr ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while($row = $stmt->fetch($prod)){ //while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $fornecedorId) { if(!is_null($prod)) { echo "</table>"; } echo " <tr style='color:#1C1C71; font-variant:small-caps; font:16px Arial, Helvetica, sans-serif; font-weight: bold;'>"; echo " <td><div class='fornec'>{$fornecedorId} - {$nome}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='no'>Qtde..: {$cotaRespQtde}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Valor.: {$cotaRespVlr}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Total.: {$cotaRespTotal}</div></td>"; echo " </tr>"; echo " <td>.</td>"; } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> Por favor, me ajuda. Grato, Renato
  8. Caro amigo Grato por sua ajuda, apenas uma dúvida: Como preciso de informar DATA e HORA, o input ficaria assim no caso do datetime: <input type="datetime" id="dtHrs" name="dtHrs" /> seria isso ? Grato, Renato
  9. Caro amigo Por favor, me perdoa por perturbar com minha dúvida, mas infelizmente não deu certo. a minha tabela está assim: CREATE TABLE IF NOT EXISTS `cotacao` ( `cotaId` int(11) NOT NULL AUTO_INCREMENT, `cotaNumero` varchar(255) DEFAULT NULL, `cotaDtInicio` date NULL DEFAULT NULL, `cotaHrsInicio` time NULL DEFAULT NULL, `cotaDtFim` date NULL DEFAULT NULL, `cotaHrsFim` time NULL DEFAULT NULL, `cotaTitulo` varchar(255) DEFAULT NULL, `cotaObserva` varchar(255) DEFAULT NULL, `cotaStatus` int(1) NOT NULL, `clienteId` varchar(11) DEFAULT NULL, `desc_categ` varchar(255) DEFAULT NULL, `desc_pgto` varchar(255) DEFAULT NULL, PRIMARY KEY (`cotaId`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Escrevi esse código, mas consigo alterar se digitar o código num input text, o que não quero. //Alterar o Status da Cotação para Analisar cotaId = $_POST['cotaId']; $cotaStatus = '2'; $sql_produto = 'UPDATE cotacao SET cotaStatus = :cotaStatus WHERE cotaId = :cotaId'; try{ $query_produto = $conecta->prepare($sql_produto); $query_produto->bindValue(':cotaStatus',$cotaStatus,PDO::PARAM_STR); $query_produto->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_produto->execute(); echo '<br/>'; echo '<div class="comunicado">Cotação está em Processo de Análise!</div><!--aviso-->'; } catch(PDOexception $error_novoProduto) { echo 'Erro ao Editar o Produto '.$error_novoProduto->getMessage(); } Preciso ler linha a linha da tabela e o que tiver com a DATA e HORA vencida, o sistema muda o STATUS para 2(análise). Estou usando PDO para minha SELECT, INSERT, UPDATE e DELETE. Infelizmente, não consigo escrever esse comando que lê a tabela e altera. Por favor, se puder me ajudar ficarei muito grato. Atenciosamente, Renato
  10. Caros amigos Por favor, me perdoa por minha dúvida. Preciso criar uma função que após logar no sistema, o PHP faz uma busca no Banco de Dados. Seria o seguinte: => tudo que for maior que a DATA e HORA atual o STATUS fica em espera. Como faço essa busca e alteração no Banco, sem ter que informar o ID ? Grato, Renato
  11. Caro amigo DiF Conforme sua orientação LI o manual, entendi a lógica, mas infelizmente não tive sucesso em adaptar ao meu código acima. Por favor, poderia me ajudar ? Grato,
  12. Caros amigos Desculpa recorrer a ajuda dos amigos, mas estou com uma dúvida. Gostaria de Impedir a Importação de Arquivo .TXT em duplicidade. Por exemplo, tenho o seguinte arquivo .TXT: 1005;2015;1000 1005;3017;1000 1005;4019;1000 O campos seriam: 1005 o número do arquivo gerado pelo sistema 2015 o número do produto 1000 a quantidade requerida Tenho o seguinte código que uso para realizar a Importação do .TXT (funciona corretamente). <?php //Variável Passada da Página Anterior $cotaIdGet = isset($_GET['cotaId']) ? $_GET['cotaId'] : false; $cotaId = isset($_POST['cotaId']) ? $_POST['cotaId'] : $cotaIdGet; $cotaNumeroGet = isset($_GET['cotaNumero']) ? $_GET['cotaNumero'] : false; $cotaNumero = isset($_POST['cotaNumero']) ? $_POST['cotaNumero'] : $cotaNumeroGet; //Função para importar Arquivo function Inserir($itens, Pdo $pdo){ $sts = $pdo->prepare("INSERT INTO cotacaoItens(cotaNumImport, codProdClie, cotaQtde, cotaId, clienteId, cotaNumero) VALUES(?,?,?,?,?,?);"); $sts->bindValue(1, $itens[0], PDO::PARAM_STR); $sts->bindValue(2, $itens[1], PDO::PARAM_STR); $sts->bindValue(3, $itens[2], PDO::PARAM_STR); $sts->bindValue(4, $itens[3], PDO::PARAM_STR); $sts->bindValue(5, $itens[4], PDO::PARAM_STR); $sts->bindValue(6, $itens[5], PDO::PARAM_STR); $sts->execute(); $sts->closeCursor(); $sts = NULL; } if (!empty($_FILES['arquivo'])) { $Pdo = new PDO("mysql:host=localhost; dbname=siscota", "root", ""); $file = fopen($_FILES['arquivo']['tmp_name'], 'r'); while (!feof($file)){ $linha = fgets($file); $itens = explode(';', $linha); $itens[] = $cotaId; $itens[] = $clienteId; $itens[] = $cotaNumero; Inserir($itens, $Pdo); } } ?> <form id="cotaItens" name="cotaItens" action="" method="post" enctype="multipart/form-data"> <span>Adicionar os Itens da Cotação:</span> <p class="p_esp"> <label> <h2>&nbsp;&nbsp;&bull; importar somente arquivo .TXT &nbsp;&nbsp;&raquo; <input type="file" name="arquivo" id="arquivo" /> <input type="submit" name="confirmar" value="Confirmar" /> </h2> </label> </p> <input type="hidden" name="cotaId" value="<?php echo $cotaId;?>" /> <input type="hidden" name="cotaNumero" value="<?php echo $cotaNumero;?>" /> </form> COMO FAÇO PARA NÃO DEIXAR IMPORTAR NOVAMENTE O ARQUIVO .TXT ? Grato, Renato
  13. Caros amigos Peço ajuda dos amigos em algo que para muito é simples. Como faço para quando passar o mouse em cima da linha de uma DataTable, a linha fica em evidência. Tenho uma lista de produto, quando passar o mouse ou selecionar uma linha, gostaria que ficasse destacada. Grato a todos. Atenciosamente, Renato
  14. Prezados Amigos Por favor, me perdoa por recorrer ao seu auxílio. Estou montando Relatório usando o JasperReports que está atualmente na Versão 6.3.0, está me dando o seguinte erro abaixo, que não consigo solucionar, mesmo após várias tentativas para solucionar o problema Quando chamo o relatório através do Sistema (Imprimir), causa um erro que não consigo entender. Erro após gerar Relatório: Hibernate: select this_.codigo as codigo1_7_1_, this_.descricao as descrica2_7_1_, this_.fabricante_codigo as fabrican5_7_1_, this_.preco as preco3_7_1_, this_.quantidade as quantida4_7_1_, fabricante2_.codigo as codigo1_3_0_, fabricante2_.descricao as descrica2_3_0_ from Produto this_ inner join Fabricante fabricante2_ on this_.fabricante_codigo=fabricante2_.codigo jul 07, 2016 12:40:49 PM com.sun.faces.application.view.ViewScopeManager <init> INFORMAÇÕES: CDI @ViewScoped bean functionality unavailable net.sf.jasperreports.engine.JRException: Invalid page index range: 0 - -1 of 0. at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:141) at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:242) at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:129) at net.sf.jasperreports.engine.JasperPrintManager.printReport(JasperPrintManager.java:326) at br.com.renato.farmaciaweb.bean.ProdutoBean.imprimir(ProdutoBean.java:203) 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 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:814) 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:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458) 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) Código fonte do HibernateUtil.java package br.com.renato.farmaciaweb.util; import java.sql.Connection; import java.sql.SQLException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.jdbc.ReturningWork; import org.hibernate.service.ServiceRegistry; public class HibernateUtil { private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); public static SessionFactory getFabricaDeSessoes() { return fabricaDeSessoes; } //Converter Sessão em Conexão public static Connection getConexao(){ Session sessao = fabricaDeSessoes.openSession(); Connection conexao = sessao.doReturningWork(new ReturningWork<Connection>() { @Override public Connection execute(Connection conn) throws SQLException { return conn; } }); return conexao; } private static SessionFactory criarFabricaDeSessoes() { try { Configuration configuração = new Configuration().configure(); ServiceRegistry registro = new StandardServiceRegistryBuilder() .applySettings(configuração.getProperties()) .build(); SessionFactory fabrica = configuração.buildSessionFactory(registro); return fabrica; } catch (Throwable ex) { System.err.println("A fábrica de sessões não pode ser criada." + ex); throw new ExceptionInInitializerError(ex); } } } Código fonte do ProdutoBean.java package br.com.renato.farmaciaweb.bean; import java.io.IOException; import java.io.Serializable; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.sql.Connection; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.event.ActionEvent; import org.omnifaces.util.Faces; import org.omnifaces.util.Messages; import org.primefaces.event.FileUploadEvent; import org.primefaces.model.UploadedFile; import br.com.renato.farmaciaweb.dao.FabricanteDAO; import br.com.renato.farmaciaweb.dao.ProdutoDAO; import br.com.renato.farmaciaweb.domain.Fabricante; import br.com.renato.farmaciaweb.domain.Produto; import br.com.renato.farmaciaweb.util.HibernateUtil; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperPrintManager; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class ProdutoBean implements Serializable { private Produto produto; private List<Produto> produtos; private List<Fabricante> fabricantes; public Produto getProduto() { return produto; } public void setProduto(Produto produto) { this.produto = produto; } public List<Produto> getProdutos() { return produtos; } public void setProdutos(List<Produto> produtos) { this.produtos = produtos; } public List<Fabricante> getFabricantes() { return fabricantes; } public void setFabricantes(List<Fabricante> fabricantes) { this.fabricantes = fabricantes; } @PostConstruct public void listar() { try { ProdutoDAO produtoDAO = new ProdutoDAO(); produtos = produtoDAO.listar(); } catch (RuntimeException erro) { Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); erro.printStackTrace(); } } public void novo() { try { produto = new Produto(); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricantes = fabricanteDAO.listar("descricao"); } catch (RuntimeException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); erro.printStackTrace(); } } public void editar(ActionEvent evento) { try { produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricantes = fabricanteDAO.listar("descricao"); if(produto.getCaminho() == null || produto.getCaminho().isEmpty() ){ produto.setCaminho("C:/Desenvolvimento/FarmaciaWeb/Uploads/branco.png"); return; } else { //Caminho das imagens p/ editar produto.setCaminho("C:/Desenvolvimento/FarmaciaWeb/Uploads/" + produto.getCodigo() + ".png"); } } catch (RuntimeException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); erro.printStackTrace(); } } public void salvar() { try { if (produto.getCaminho() == null) { Messages.addGlobalError("O campo foto é obrigatório"); return; } ProdutoDAO produtoDAO = new ProdutoDAO(); Produto produtoRetorno = produtoDAO.merge(produto); // Criando referência Path origem = Paths.get(produto.getCaminho()); // Criando destino Path destino = Paths.get("C:/Desenvolvimento/FarmaciaWeb/Uploads/" + produtoRetorno.getCodigo() + ".png"); //Fazendo a cópia para pasta de destino Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); produto = new Produto(); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricantes = fabricanteDAO.listar("descricao"); produtos = produtoDAO.listar(); Messages.addGlobalInfo("Produto salvo com sucesso"); } catch (RuntimeException | IOException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); erro.printStackTrace(); } } public void excluir(ActionEvent evento) { try { produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); ProdutoDAO produtoDAO = new ProdutoDAO(); produtoDAO.excluir(produto); //Excluir Imagem Upload Path arquivo = Paths.get("C:/Desenvolvimento/FarmaciaWeb/Uploads/" + produto.getCodigo() + ".png"); Files.deleteIfExists(arquivo); produtos = produtoDAO.listar(); Messages.addGlobalInfo("Produto removido com sucesso"); } catch (RuntimeException | IOException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); erro.printStackTrace(); } } public void upload(FileUploadEvent evento) { try { UploadedFile arquivoUpload = evento.getFile(); // Arquivo temporário dentro sistema operacional Path arquivoTemp = Files.createTempFile(null, null); Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); // Origem do caminho temporário produto.setCaminho(arquivoTemp.toString()); Messages.addGlobalInfo("Upload Efetuado com Sucesso"); } catch (IOException erro) { Messages.addFlashGlobalError("Ocorreu um erro ao tentar fazer Upload."); erro.printStackTrace(); } } public void imprimir() { try { String caminho = Faces.getRealPath("/reports/produtos.jasper"); Map<String, Object> parametros = new HashMap<>(); Connection conexao = HibernateUtil.getConexao(); JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); JasperPrintManager.printReport(relatorio, true); //Linha n.203 que apresenta o erro } catch (JRException erro) { Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); erro.printStackTrace(); } } } Agradeço humildemente a todos. Atenciosamente, Renato
  15. Caros amigos. Por favor uma ajudinha.Estou escrevendo um sistema simples e estou usando o RESTful. Infelizmente não estou conseguindo fazer a Edição, peço humildemente ajuda aos amigos. Abaixo os Código Fonte. FabricanteService.java package br.com.renato.farmaciaweb.service; import java.util.List; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import com.google.gson.Gson; import br.com.renato.farmaciaweb.dao.FabricanteDAO; import br.com.renato.farmaciaweb.domain.Fabricante; @Path("fabricante") public class FabricanteService { // http://localhost:8080/FarmaciaWeb/rest/fabricante //@GET = serve para pesquisa de dados @GET public String listar(){ FabricanteDAO fabricanteDAO = new FabricanteDAO(); List<Fabricante> fabricantes = fabricanteDAO.listar("descricao"); Gson gson = new Gson(); String json = gson.toJson(fabricantes); return json; } // http://localhost:8080/FarmaciaWeb/rest/fabricante/{codigo} // http://localhost:8080/FarmaciaWeb/rest/fabricante/10 @GET @Path("{codigo}") public String buscar(@PathParam("codigo") Long codigo){ FabricanteDAO fabricanteDAO = new FabricanteDAO(); Fabricante fabricante = fabricanteDAO.buscar(codigo); Gson gson = new Gson(); String json = gson.toJson(fabricante); return json; } // http://localhost:8080/FarmaciaWeb/fabricante //@POST = serve para incluir dados @POST public String salvar(String json) { Gson gson = new Gson(); Fabricante fabricante = gson.fromJson(json, Fabricante.class); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricanteDAO.salvar(fabricante); String jsonSaida = gson.toJson(fabricante); return jsonSaida; } // http://localhost:8080/FarmaciaWeb/fabricante //@PUT = edita/altera dados @PUT public String editar(String json) { Gson gson = new Gson(); Fabricante fabricante = gson.fromJson(json, Fabricante.class); FabricanteDAO fabricanteDAO = new FabricanteDAO(); fabricanteDAO.editar(fabricante); String jsonSaida = gson.toJson(fabricante); return jsonSaida; } // http://localhost:8080/FarmaciaWeb/fabricante/5 @DELETE @Path("{codigo}") public String excluir(@PathParam("codigo") Long codigo){ //Cria o DAO FabricanteDAO fabricanteDAO = new FabricanteDAO(); //Busca o Fabricante passado Fabricante fabricante = fabricanteDAO.buscar(codigo); //Exclui o Fabricante fabricanteDAO.excluir(fabricante); //Retorna o Fabricante removido Gson gson = new Gson(); String saida = gson.toJson(fabricante); return saida; } } FabricanteBean.java package br.com.renato.farmaciaweb.bean; import java.io.Serializable; import java.util.Arrays; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.event.ActionEvent; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import org.omnifaces.util.Messages; import com.google.gson.Gson; import br.com.renato.farmaciaweb.domain.Fabricante; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class FabricanteBean implements Serializable { private Fabricante fabricante; private List<Fabricante> listaFabricante; public Fabricante getFabricante() { return fabricante; } public void setFabricante(Fabricante fabricante) { this.fabricante = fabricante; } public List<Fabricante> getListaFabricante() { return listaFabricante; } public void setListaFabricante(List<Fabricante> listaFabricante) { this.listaFabricante = listaFabricante; } // Parte de comandos e ações do sistema public void novo() { fabricante = new Fabricante(); } public void salvar() { try { //Cria um cliente Client cliente = ClientBuilder.newClient(); //Definir a String de Conxão com o Servidor WebTarget caminho = cliente.target("http://localhost:8080/FarmaciaWeb/rest/fabricante"); Gson gson = new Gson(); //Cria o método salvar String json = gson.toJson(fabricante); caminho.request().post(Entity.json(json)); //Estanciar cadastro fabricante = new Fabricante(); //estância o Listar json = caminho.request().get(String.class); Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); listaFabricante = Arrays.asList(vetor); Messages.addGlobalInfo("Fabricante Salvo com Sucesso."); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Salvar um Fabricante."); ex.printStackTrace(); } } //Método PostConstruct é um construtor @PostConstruct public void listar(){ try{ //Cria um cliente Client cliente = ClientBuilder.newClient(); //Definir a String de Conxão com o Servidor WebTarget caminho = cliente.target("http://localhost:8080/FarmaciaWeb/rest/fabricante"); //estância o Listar String json = caminho.request().get(String.class); Gson gson = new Gson(); Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); //Converte num ArrayList listaFabricante = Arrays.asList(vetor); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Salvar um Fabricante."); ex.printStackTrace(); } } public void excluir(ActionEvent evento){ try{ fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); //Cria um cliente Client cliente = ClientBuilder.newClient(); //Definir a String de Conxão com o Servidor WebTarget caminho = cliente.target("http://localhost:8080/FarmaciaWeb/rest/fabricante"); WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); //Cria o método excluir caminhoExcluir.request().delete(); String json = caminho.request().get(String.class); //estância o Listar Gson gson = new Gson(); Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); //Converte num ArrayList listaFabricante = Arrays.asList(vetor); Messages.addGlobalInfo("Fabricante Excluído com Sucesso."); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Excluir um Fabricante."); ex.printStackTrace(); } } public void editar(ActionEvent evento){ try{ fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); Messages.addGlobalInfo("Fabricante Editado com Sucesso."); } catch (RuntimeException ex) { Messages.addGlobalError("Ocorreu um erro ao tentar Editar um Fabricante."); ex.printStackTrace(); } } } Humildemente agradeço a todos. Atenciosamente, Renato
  16. Caros amigos. Por favor, preciso de um auxílio em Java + PrimeFaces. Como consigo personalizar a Barra da Tabela onde apareça do lado do Paginador o Seguinte: Novo | Editar || << |< 1 >| >> O Novo e Editar seria Button por exemplo. Não consigo alterar esta barra. Grato a todos. Atenciosamente, Renato
  17. Caros amigos. tudo bem ? Recorro ajuda dos amigos referente a uma dúvida que estou encontrando. Estou escrevendo um pequeno sistema em JAVA, usando alguns recursos do PrimeFaces. Gostaria de saber como faço para deixa evidente o disabled ? Tentei de todas as formas e não consigo. Imagem da tela abaixo onde mostro o disabled com a cor fosca. Grato a todos. Atenciosamente, Renato
  18. Caros amigos. Após algumas pesquisas e busca na Net consegui resolver o erro: HTTP Status 500 - MenuItem must be inside a form element Coloquei o seguinte comando no menu: <h:form></h:form>, ficou assim. <p:layoutUnit header="Menu Principal" position="west" size="250" resizable="false" closable="false" collapsible="false"> <h:form> <!-- APÓS ACRESCENTAR ESTE COMANDO O MEU FUNCIONOU NORNAL --> <p:panelMenu style="width:300px"> <p:submenu label="Arquivo"> <p:menuitem value="Home" /> <p:menuitem value="Sair" /> </p:submenu> <p:submenu label="Cadastro"> <p:menuitem value="Forncedor"/> <p:menuitem value="Produto"/> <p:menuitem value="Funcionário"/> </p:submenu> <p:submenu label="Manutenção"> <p:menuitem value="Entrada"/> <p:menuitem value="Vendas"/> <p:separator /> <p:menuitem value="Relatório"/> </p:submenu> </p:panelMenu> </h:form> </p:layoutUnit> Grato a todos. Atenciosamente, Renato
  19. Caro amigo Diego O <p:menuitem /> está dentro do: <p:layoutUnit > <p:panelMenu> <p:submenu> <p:menuitem /> <!-- Mesmo assim continua o erro --> </p:submenu> </p:panelMenu> </p:layoutUnit> Observação: estou usando o xhtml e não html. Como consigo corrigir ? Grato. REnato
  20. Caros amigos. Estou com um pequeno problema de Criação de Menu, escrevi um código para menu vertical usando o PrimeFaces mas está dando erro. O erro é causado principalmente após usar o comando: <p:menuitem />, aí não compila. Como devo corrigir este erro ? Código Fonte do Menu <?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"> <h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Famrácia WEB</title> </h:head> <h:body> <p:layout fullPage="true"> <p:layoutUnit header="Sistema WEB para Gerenciamento de Farmácia" position="north" resizable="false" closable="false" collapsible="false"> </p:layoutUnit> <p:layoutUnit header="Desenvolvido por: RCT Informática" position="south" resizable="false" closable="false" collapsible="false"> </p:layoutUnit> <p:layoutUnit header="Menu Principal" position="west" size="250" resizable="false" closable="false" collapsible="false"> <p:panelMenu style="width:300px"> <p:submenu label="Arquivo"> <p:menuitem value="Home" /> <p:menuitem value="Sair" /> </p:submenu> <p:submenu label="Cadastro"> <p:menuitem value="Forncedor"/> <p:menuitem value="Produto"/> <p:menuitem value="Funcionário"/> </p:submenu> <p:submenu label="Manutenção"> <p:menuitem value="Entrada"/> <p:menuitem value="Vendas"/> <p:separator /> <p:menuitem value="Relatório"/> </p:submenu> </p:panelMenu> </p:layoutUnit> <p:layoutUnit position="center" resizable="false" closable="false" collapsible="false"> <ui:insert name="conteudo"/> </p:layoutUnit> </p:layout> </h:body> </html> Erro gerado: HTTP Status 500 - MenuItem must be inside a form element type Exception report message MenuItem must be inside a form element description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: MenuItem must be inside a form element javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause javax.faces.FacesException: MenuItem must be inside a form element org.primefaces.component.menu.BaseMenuRenderer.encodeMenuItem(BaseMenuRenderer.java:177) org.primefaces.component.panelmenu.PanelMenuRenderer.encodeRootSubmenu(PanelMenuRenderer.java:133) org.primefaces.component.panelmenu.PanelMenuRenderer.encodeMarkup(PanelMenuRenderer.java:64) org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:114) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919) org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:89) org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72) org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:49) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456) com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) javax.faces.webapp.FacesServlet.service(FacesServlet.java:647) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/8.0.33 logs. -------------------------------------------------------------------------------- Apache Tomcat/8.0.33 Grato a todos. Atenciosamente, Renato
  21. Caros amigos Agradeço a todos que visualizaram meu pedido de ajuda, mas consegui resolver o erro. Nesta linha está o erro: @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "tbl_funcionarios_fun_codigo", referencedColumnName = "fun_codigo", nullable = false) private Funcionario funcionario; Não prestei atenção mas na base do banco de dados havia digitado errado a chave estrangeira, ou seja: digitado na base de dados: "tbl_funcionarios_fun_condigo" (por causa de uma letrinha (n) deu erros. o correto é...........................: "tbl_funcionarios_fun_codigo" Grato a todos. Atenciosamente, Renato
  22. Caros amigos. Estou escrevendo um sistema em JAVA usando Hibernate e me deparei com o seguinte problema, conforme mensagem de falha ao tentar Criar o SessionFactory.java.lang.NullPointerException . NÃO ENTENDI. Abaixo os códigos fonte que estou usando. Venda.java package br.com.farmacia.domain; import java.math.BigDecimal; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table(name = "tbl_vendas") @NamedQueries({ @NamedQuery(name = "Venda.listar", query = "SELECT venda FROM Venda venda"), @NamedQuery(name = "Venda.buscarPorCodigo", query = "SELECT Venda FROM Venda venda WHERE codigo = :codigo") }) public class Venda { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "ven_codigo") private Long codigo; @Temporal(value = TemporalType.TIMESTAMP) @Column(name = "ven_horario", nullable = false) private Date horario; @Column(name = "ven_valor_total", precision = 7, scale = 2, nullable = false) private BigDecimal valor; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "tbl_funcionarios_fun_codigo", referencedColumnName = "fun_codigo", nullable = false) private Funcionario funcionario; public Long getCodigo() { return codigo; } public void setCodigo(Long codigo) { this.codigo = codigo; } public Date getHorario() { return horario; } public void setHorario(Date horario) { this.horario = horario; } public BigDecimal getValor() { return valor; } public void setValor(BigDecimal valor) { this.valor = valor; } public Funcionario getFuncionario() { return funcionario; } public void setFuncionario(Funcionario funcionario) { this.funcionario = funcionario; } @Override public String toString() { return "Venda [codigo=" + codigo + ", horario=" + horario + ", valor=" + valor + ", funcionario=" + funcionario + "]"; } } VendaDAO.java package br.com.farmacia.dao; import org.hibernate.Session; import org.hibernate.Transaction; import br.com.farmacia.domain.Venda; import br.com.farmacia.util.HibernateUtil; public class VendaDAO { public void salvar(Venda venda){ Session sessao = HibernateUtil.getSessionFactory().openSession(); Transaction transacao = null; try { transacao = sessao.beginTransaction(); sessao.save(venda); //Confirma a transação transacao.commit(); } catch (RuntimeException ex) { //Se a Transação foi Iniciada if(transacao != null){ transacao.rollback(); } //Capturar o erro throw ex; } finally { sessao.close(); } } } VendaDAOTest.java - neste código fonte, testo para ver se está salvando no banco de dados. package br.com.farmacia.dao; import org.hibernate.Session; import org.hibernate.Transaction; import br.com.farmacia.domain.Venda; import br.com.farmacia.util.HibernateUtil; public class VendaDAO { public void salvar(Venda venda){ Session sessao = HibernateUtil.getSessionFactory().openSession(); Transaction transacao = null; try { transacao = sessao.beginTransaction(); sessao.save(venda); //Confirma a transação transacao.commit(); } catch (RuntimeException ex) { //Se a Transação foi Iniciada if(transacao != null){ transacao.rollback(); } //Capturar o erro throw ex; } finally { sessao.close(); } } } Após testar dá o seguinte erro no console que não consigo identificar onda está o erro. Console jun 04, 2016 3:06:34 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final} jun 04, 2016 3:06:34 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.3.11.Final} jun 04, 2016 3:06:34 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found jun 04, 2016 3:06:34 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist jun 04, 2016 3:06:34 PM org.hibernate.cfg.Configuration configure INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml jun 04, 2016 3:06:34 PM org.hibernate.cfg.Configuration getConfigurationInputStream INFO: HHH000040: Configuration resource: /hibernate.cfg.xml jun 04, 2016 3:06:34 PM org.hibernate.cfg.Configuration doConfigure INFO: HHH000041: Configured SessionFactory: null jun 04, 2016 3:06:34 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!) jun 04, 2016 3:06:34 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/db_farmacia] jun 04, 2016 3:06:34 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000046: Connection properties: {user=root, password=****} jun 04, 2016 3:06:34 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000006: Autocommit mode: false jun 04, 2016 3:06:34 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 1 (min=1) jun 04, 2016 3:06:34 PM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect jun 04, 2016 3:06:34 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService INFO: HHH000399: Using default transaction strategy (direct JDBC transactions) jun 04, 2016 3:06:34 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init> INFO: HHH000397: Using ASTQueryTranslatorFactory jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.SchemaValidator validate INFO: HHH000229: Running schema validator jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.SchemaValidator validate INFO: HHH000102: Fetching database metadata jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: db_farmacia.tbl_fabricantes jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [fab_descricao, fab_codigo] jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: db_farmacia.tbl_funcionarios jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [fun_cpf, fun_nome, fun_senha, fun_codigo, fun_funcao] jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: db_farmacia.tbl_itens jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [tbl_vendas_ven_codigo, ite_valor_parcial, tbl_produtoss_pro_codigo, ite_quantidade, ite_codigo] jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: db_farmacia.tbl_produtos jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [pro_codigo, tbl_fabricantes_fab_codigo, pro_descricao, pro_quantidade, pro_preco] jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: db_farmacia.tbl_vendas jun 04, 2016 3:06:35 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [ven_horario, tbl_funcionarios_fun_codigo, ven_valor_total, ven_codigo] Falha ao tentar Criar o SessionFactory.java.lang.NullPointerException Alguém por favor, poderia me ajudar ? Grato, Renato Amigos, o código fonte correto do VendaDAOTest.java é o abaixo: package br.com.farmacia.test; import java.math.BigDecimal; import java.util.Date; import org.junit.Test; import br.com.farmacia.dao.FuncionarioDAO; import br.com.farmacia.dao.VendaDAO; import br.com.farmacia.domain.Funcionario; import br.com.farmacia.domain.Venda; public class VendaDAOTest { @Test public void salvar(){ FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); Funcionario funcionario = funcionarioDAO.buscarPorCodigo(5L); Venda venda = new Venda(); venda.setFuncionario(funcionario); venda.setHorario(new Date()); venda.setValor(new BigDecimal(150.00D)); VendaDAO vendaDAO = new VendaDAO(); vendaDAO.salvar(venda); } } Desculpa o erro

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!