Olá,
Caso esteja recebendo uma exception parecida com a mostrada abaixo…

javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.portalfiscal.inf.br/nfe",
local:"inutNFe"). Expected elements are
<{http://www.w3.org/2000/09/xmldsig#}Signature>

… tente fazer o seguinte. Coloque essas anotações na ordem informando o namespace.

@XmlRootElement(name="inutNFe", namespace="http://www.portalfiscal.inf.br/nfe")
@XmlType(name = "TInutNFe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = {"infInut", "signature"})
@XmlAccessorType(XmlAccessType.FIELD)
public class TInutNFe {

Por aqui resolveu  :mrgreen:

Share

Olá,

Estávamos convertendo um XML em Java Object normalmente com o trecho abaixo:

Object object = (JAXBElement<Object>) unmarsh.unmarshal(is);
object.getValue();

Depois de uma alteração passei a receber essa exception:

java.lang.ClassCastException: br.com.xxxx.nfe.beans.TInutNFe cannot be cast to javax.xml.bind.JAXBElement

A alteração foi incluir essa anotação na classe

@XmlRootElement(name="inutNFe", namespace="http://www.portalfiscal.inf.br/nfe")

Com isso a variável object é uma instância do bean e não de JAXBElement, dessa forma não é necessária fazer a chamada ao método getValue() na segunda linha.

Share

Olá,

Para obter o trace (ou dump) request/response do webservice criado com JAX-WS ajuste as seguintes propriedades no servidor de aplicação.

 

-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
-Dcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true
-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true
-Dcom.sun.xml.internal.ws.transport.http.HttpAdapter.dump=true

Você verá no console algumas mensagens parecidas com essas:

---[HTTP request]---
Cache-control: no-cache
Host: 127.0.0.1:7778
Content-type: text/xml; charset=utf-8
Content-length: 1142
Pragma: no-cache
User-agent: Axis/1.4
Soapaction: ""
Accept: application/soap+xml, application/dime, multipart/related, text/*
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><getFaturasDebitosTotalizado2 xmlns="http://wsagefatura.sondautilities.com.br/"><agencia xmlns="">1</agencia><caixa xmlns="">1</caixa><user xmlns="">user</user><pass xmlns="">****</pass><tipoBusca xmlns="">UC</tipoBusca><situacao xmlns="">A</situacao><entsFat xmlns=""><mensagemWS></mensagemWS><retornoWS>OK</retornoWS><codigo>101</codigo><descricao>FATURAS</descricao></entsFat><entsFat xmlns=""><mensagemWS></mensagemWS><retornoWS>OK</retornoWS><codigo>105</codigo></getFaturasDebitosTotalizado2></soapenv:Body></soapenv:Envelope>--------------------
---[HTTP response 200]---
<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:getFaturasDebitosTotalizado2Response xmlns:ns2="http://wsagefatura.sondautilities.com.br/"><return><mensagemWS></mensagemWS><retornoWS>OK</retornoWS><codCpu>04</codCpu><codEmp>0008</codEmp><codUC>9999</codUC><vlrEmitido>28.57</vlrEmitido></return></ns2:getFaturasDebitosTotalizado2Response></S:Body></S:Envelope>--------------------
Share

Olá,

Comecei a olhar as novidades do Java 8 e pensei comigo mesmo: Demorou mas chegou!

Gostei muito das novidades que são destacadas pela Oracle e blogs ao redor do mundo (eu acho que tem mais algumas novidades menos destacadas que eu vou gostar 🙂 )

Posso dizer que:

As expressões Lambdas, que existem há muito tempo em outras linguagens realmente são muitos legais.

A nova API para trabalhar com datas facilitou muito o entendimento e consequentemente a manipulação de data e hora no Java.

Abaixo enumerei 6 linhas que gostei de ver que compila e roda (quase um sonho).

        ArrayList<String> listaNomes = new ArrayList<>();
        listaNomes.add("Katia");
        listaNomes.add("Ana");
        listaNomes.add("Fernanda");
        listaNomes.add("Andreia");
        //(1) Ordena pelo length da string
        listaNomes.sort((n1, n2) -> Integer.compare(n1.length(), n2.length()));
        //(2) Mostra a lista no console
        listaNomes.forEach(s -> System.out.println(s));
        LocalDate dataInicial = LocalDate.of(2014, Month.MAY, 14);
        //(3) Soma 1 ano
        LocalDate dataFinal = dataInicial.plusYears(1);
        System.out.println(dataFinal);
        LocalTime horaAgora = LocalTime.now();
        //(4) Somar minutos a hora
        System.out.println(horaAgora.plusMinutes(15));
        //(5) Diferença em dias de duas datas
        long days = ChronoUnit.DAYS.between(dataInicial, dataFinal);
        System.out.println(days);
        //(6) Diferença entre horas em minutos
        System.out.println(Duration.between(LocalTime.parse("11:00:00"), LocalTime.parse("17:00:00")).toMinutes());

Para esse post é só, ainda falta olhar o modificador default em interfaces, a API Stream para coleções e outras novidades.

Referências:

Java Magazine

Oracle Documentation

Get all countries using Java SE 8 Locale 

Share

Olá,

[Atualização 01/nov/13 19:00: Segundo o twitter do BB já é possível acessar o internet banking pelo Mavericks.]

Tem muita gente com problema de acesso ao internet banking do BB e do Itaú no Safari (Versão 7.0 (9537.71)) por causa do Java (no meu caso versão 7 update 45). Existe um procedimento que podemos fazer para que ele funcione.

[Atualização 15/10/2014]

Abrir o Java Control Panel que fica no menu da maçã > preferências do sistema.

Vá na aba segurança, clica em editar lista de sites e adicione esses dois endereços:
https://www2.bancobrasil.com.br/
https://aapj.bb.com.br/

Clique em OK.

Java Control Panel

Java Control Panel

Testado com Java 7 Update 67

[/Fim Atualização]

Vamos lá configurar o Safari, no menu Safari clique em Preferências ou tecle ⌘,

Na aba Segurança, marque a opção permitir plug-ins e clique no botão Gerenciar Ajuste do Site. A tela abaixo será aberta.

Tela de configuração

No lado esquerdo clique em Java e no lado direito veja se o site do Banco do Brasil aparece, se não aparecer tente acessar sua conta e depois volte nessa etapa.

Continue lendo o artigo »

Share