corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Vinculando WSDL a Java com JAXB

A arquitetura Java para API de vinculação XML (JAXB) facilita o acesso aos documentos XML a partir de aplicativos escritos na linguagem de programação Java. Este documento mostra como o NetBeans IDE 6.1 e 6.0 fornecem suporte à ferramenta para JAXB, principalmente por meio de um assistente que transforma várias tipos de documentos XML em classes Java. Começando com um determinado arquivo WSDL, geraremos classes Java e depois faremos algo com elas.

Neste tutorial, você aprenderá duas coisas específicas:

  • Como usar um assistente no IDE para vincular o esquema de um documento XML a um conjunto de classes Java que representa o esquema.
  • Como usar uma variedade de ferramentas fornecidas pelo IDE para usar de forma rápida e eficiente as classes Java geradas.

Para obter informações detalhadas sobre a arquitetura JAXB, e sobre JAXB como um todo, consulte o Chapter 2: Binding between XML Schema and Java Classes and Chapter 3: Using JAXB in The Java Web Services Tutorial.

Conteúdo

O conteúdo desta página se aplica ao IDE NetBeans 6.0  e 6.1

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE Versão "completa" 6.0 ou 6.1
O plug-in SOA deve ser instalado.
Java Development Kit (JDK) versão 6 ou
versão 5
Servidor da aplicação ou Web compatível com Java EE Servidor Web Tomcat 6.0 e/ou
Servidor da aplicação GlassFish v2
O arquivo WSDL usado neste tutorialCreditReportSimple.wsdl

O Tomcat e o GlassFish podem ser instalados com a distribuição Web e Java EE do NetBeans IDE. Como alternativa, você pode visitar a página de download do GlassFish ou a página de download do Apache Tomcat.

Gerando objetos Java a partir de documentos XML

O objetivo deste exercício é criar um projeto e gerar objetos Java a partir de um documento XML.

  1. Escolha Arquivo > Novo projeto. Em Categorias, selecione Java. Em Projetos, selecione Aplicação Java e clique em Próximo.
  2. Em Nome do projeto, indique JseSimpleClientReport e clique em Terminar.
  3. Clique com o botão direito do mouse no nó JseSimpleClientReport e escolha Novo > Outro > XML > Vinculação JAXB. Em seguida clique em Próximo. O assistente para Nova vinculação JAXB aparece.
    Assistente para JAXB

    As configurações no assistente acima servem para as seguintes finalidades:

    • Nome da vinculação. Especifica o nome da nova vinculação JAXB, que será usada para identificá-la.
    • Projeto. Exibe o nome do projeto atual.
    • Arquivo do esquema. O arquivo com o qual você deseja trabalhar pode estar disponível localmente ou on-line.
    • Tipo de esquema. Os tipos seguintes de documento XML são suportados:
      • Esquema XML
      • Relax NG
      • Relax NG Compact
      • XML DTD
      • WSDL
    • Nome do pacote. Especifica o nome do pacote onde os objetos Java serão gerados.
    • Opções do compilador. Muitas opções do compilador estão disponíveis, como descrito aqui no Tutorial do Java EE 5. Entretanto, em relação ao assistente para JAXB, somente as opções seguintes são relevantes e você pode defini-las usando caixas de verificação no assistente:
      • nv. Não realize validação estrita do(s) esquema(s) de entrada. Por padrão, a validação estrita do esquema do código-fonte é realizada antes do processamento. Observe que isso não significa que o compilador de vinculação não realizará qualquer validação; isso simplesmente quer dizer que ele realizará uma validação menos estrita.
      • readOnly. Força o compilador a marcar os códigos-fonte Java gerados como somente-leitura. Por padrão, o compilador não protege contra gravação os arquivos de código-fonte Java que ele gera.
      • npa. Suppress the generation of package level annotations into **/package-info.java. Usar esta opção faz com que o código gerado internalize essas anotações em outras classes geradas.
      • verboso. Produz a saída máxima do compilador, tais como informações de progresso e avisos.
      • silencioso. Elimina a saída do compilador, tais como informações de progresso e avisos.
    • Usar extensão. Por padrão, o compilador reforça estritamente as regras abordadas no capítulo Compatibilidade da Especificação JAXB. No modo padrão (estrito), você também está limitado a usar somente as personalizações de vinculação definidas na especificação. Usando esta opção, você será permitido a usar as extensões de fornecedor JAXB.
    • Usar arquivo de vinculação. Permite que você importe e edite um ou mais arquivos de personalização JAXB.
    • Usar arquivo de catálogo. Permite que você importe e edite arquivos de catálogo OASIS.
  4. Digite CreditReport em Nome da vinculação e org.netbeans.j2ee.wsdl.creditreport em Nome do pacote.
  5. Ao lado de Selecionar do sistema de arquivos local, clique em Explorar e vá para o arquivo WSDL que você baixou no início deste tutorial.
  6. Na lista suspensa Tipo de esquema, escolha WSDL. Agora você deve ver o seguinte:
    Assistente para JAXB preenchido
  7. Clique em Terminar.

O IDE gera os objetos Java a partir do documento XML fornecido. Na próxima seção, examinamos os objetos Java no IDE.

Examinando a saída do assitente JAXB

O objetivo deste exercício é nos familiarizarmos com as ferramentas do NetBeans IDE para trabalhar com a saída do assistente JAXB.

  1. Como em outros artefatos que o IDE gera novamente sempre que um projeto é construído, os objetos Java são gerados na pasta build. Abra a janela Arquivos e vá para a localização dos objetos Java gerados:
    Visualização Projetos mostrando objetos Java gerados
  2. A janela Projetos exibe um novo nó que contém o arquivo WSDL, como mostrado abaixo. Observe que você pode clicar com o botão direito do mouse no nó CreditReport e, em seguida, o assistente reabre e é possível alterar as configurações especificadas anteriormente.
    Menu de contexto Relatório de crédito mostrando a opção Alterar opções de JAXB

    Observe também que o assistente colocou as bibliotecas JAXB no classpath do aplicativo para JDK 5. Para JDK 6, o próprio JDK fornece as bibliotecas JAXB, portanto, nenhum novo nó é adicionado ao nó Bibliotecas.

  3. Presumindo que você tenha alterado as configurações no assistente, é possível gerar novamente os objetos Java, como indicado abaixo:
    Menu de contexto Vinculação JAXB mostrando a opcão Gerar código Java novamente
  4. Clique com o botão direito do mouse no arquivo WSDL e escolha Abrir. O documento abre em um editor com três abas, "Código-fonte", "WSDL" e "Parceiro". Clique em WSDL o observe que uma visualização visual se abre, permitindo que você analise e edite facilmente o arquivo WSDL.
    Arquivo WSDL simples de relatório de crédito no editor WSDL

Agora que você sabe o que o IDE gerou para seu documento XML, usaremos algumas das ferramentas que observamos para fazer algo significativo com nossos objetos Java gerados.

Usando os objetos Java

O objetivo deste exercício é fazer algo significativo com os arquivos e o código que o IDE gerou para você. Você definirá alguns valores em um dos objetos Java gerados e, em seguida, serializará a janela Saída do IDE.

  1. Abra a classe Main que o assistente para Novo aplicativo Java gerou para você.
  2. Declare CreditReport, que é uma das classes JAXB raiz geradas, no construtor:
    public static void main(String[] args) {
         CreditReport cr = new CreditReport();
            }
  3. Agora, apenas digite 'cr.', para começar a usar sua declaração e note que quando você pressiona Ctrl-Espaço, o IDE lhe oferece o auto-completar de código relevante para seus artefatos JAXB:
    Opções de auto-completar de código
  4. Defina alguns valores para a classe JAXB, tais como os seguintes:
        cr.setFirstName("Butros Butros");
        cr.setLastName("Gali");
        cr.setDob("1930/05/30");
        cr.setScore("900");
        cr.setSsn("123-45-6789");
    
        cr.setLatestAddress1("2500 Some Ave");
        cr.setLatestAddress2("Suite 5000");
        cr.setCity("New York");
        cr.setState("New York");
        cr.setCountry("USA");
        cr.setPostalCode("NY 12345-6789");
    
        cr.setCurrency("USD");
        cr.setLiability(BigInteger.valueOf(2000000));
        cr.setLiquidAssests(BigInteger.valueOf(3000000));
        cr.setImmovableAssests(BigInteger.valueOf(5000000));
            
  5. Digite as letras 'jaxbm' no editor. Essas letras significam 'JAXB Marshalling'. Agora você deve ver o seguinte:
    Trecho de código no editor mostrando jaxbm sublinhado em vermelho

    Aparece um sublinhado vermelho porque os caracteres que você digitou não formam uma palavra que seja parte da linguagem de programação Java. Em vez disso, essas letras formam um modelo de código do NetBeans, que usaremos na próxima etapa. Um modelo de código relacionado é 'jaxbu', que significa 'JAXB Unmarshalling'.

  6. Pressione a tecla 'Tab'.

    Os caracteres 'jaxbm' se expandem e um trecho de código aparece:

    try {
        javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(cr.getClass().getPackage().getName());
        javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
        marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8"); //NOI18N
        marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
        marshaller.marshal(cr, System.out);
    } catch (javax.xml.bind.JAXBException ex) {
        // XXXTODO Handle exception
        java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
    }
  7. Clique com o botão direito do mouse em qualquer lugar no corpo do código e selecione Corrigir importações. As declarações de importação de pacote necessárias são adicionadas ao código. Quaisquer indicadores de erro devem desaparecer.

    Você agora usou várias ferramentas fornecidas pelo IDE para trabalhar com JAXB no editor. Seu pequeno aplicativo agora está pronto para deployment.

  8. Execute a aplicação. A janela Saída deve exibir o seguinte:
    Saída do relatório do cliente


Veja também

Para obter mais informações sobre o uso do NetBeans IDE para desenvolver aplicações Java EE, consulte os seguintes recursos:

Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos dos recursos de desenvolvimento de Java EE do NetBeans IDE, inscreva-se na lista de endereçamento de .

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems