FeaturesPluginsDocs & SupportCommunityPartners

Serviço Web passando dados binários, parte 5: Modificando os arquivos do esquema e WSDL

Nesta seção, você adiciona o arquivo WSDL e o arquivo do esquema ao nosso aplicativo. Em seguida, você modifica-os para interpretar matrizes de bytes como imagens. Você também ajusta várias partes do aplicativo para localizar corretamente o arquivo do esquema e WSDL. No processo, você é apresentado a várias ferramentas no IDE que ajudam você com os arquivos WSDL e do esquema.

Tutoriais desta trilha

 O conteúdo desta página se aplica ao IDE NetBeans 6.1
  1. Visão geral
  2. Criando o módulo EJB
  3. Criando o serviço Web
  4. Testando o serviço Web
  5. => Modificando os arquivos do esquema e WSDL para passar dados binários
  6. Criando o cliente Swing
  7. Registrando e otimizando o serviço Web

Modificando os arquivos do esquema e WSDL para passar dados binários

No procedimento seguinte, você cria arquivos WSDL e do esquema XML modificados para o serviço Web criado em um tutorial anterior. Os arquivos WSDL e do esquema modificados permitem que o serviço Web e os clientes que o consomem analisem os dados da imagem JPEG que é passada como dados binários.

Para modificar os arquivos WSDL e do esquema:

  1. Expanda o aplicativo Web até alcançar o nó wsdl:
    Aplicativo Java com ws consumido

    Observação: No momento, o nó está vazio. O arquivo WSDL e o esquema são gerados no deployment, pois você está usando as configurações padrão. Portanto, esse nó, que normalmente os hospedaria, está vazio. Agora que deseja interpretar matrizes de bytes como imagens, você precisa fornecer seu próprio arquivo WSDL e esquema. Iremos colocá-los neste nó.

  2. Clique com o botão direito do mouse no nó wsdl e escolha Novo > Outro. O assistente para Novo arquivo se abre. Abra a categoria XML e selecione Esquema XML. Chame o arquivo do esquema de FlowerService.xsd.
  3. Repita a Etapa 2, mas dessa vez na categoria XML, selecione Documento WSDL. Chame o arquivo de FlowerService.wsdl .

    Agora você deve ver o seguinte no nó wsdl:
    Aplicativo Java com ws consumido

  4. Copie o conteúdo do arquivo WSDL no navegador para o modelo criado acima. Se você usou os padrões quando criou e implantou o serviço Web, o arquivo WSDL deve estar aqui:

    http://localhost:8080/FlowerService/FlowerService?WSDL

    Edite o arquivo WSDL e insira as declarações de namespace. Essas declarações são necessárias para que o WSDL seja válido. Substitua as linhas no início do arquivo:

    <!--
     Published by JAX-WS RI at http://jax-ws.dev.java.net. A versão da RI é JAX-WS RI 2.1.2-hudson-182-RC1.
    -->
    
    <!--
     Generated by JAX-WS RI at http://jax-ws.dev.java.net. A versão da RI é JAX-WS RI 2.1.2-hudson-182-RC1.
    -->
    
            <definitions targetNamespace="http://album.flower/" name="FlowerService">

    pelo seguinte:

    <definitions xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        targetNamespace="http://album.flower/"
        xmlns="http://schemas.xmlsoap.org/wsdl/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        name="FlowerService"
            xmlns:tns="http://album.flower/">
  5. Similarmente, copie o arquivo do esquema para o seu arquivo de modelo. O arquivo do esquema está aqui, por padrão:

    http://localhost:8080/FlowerService/FlowerService?xsd=1

    Edite o arquivo do esquema e insira as declarações de namespace . Essas declarações são necessárias para que o arquivo do esquema seja válido. Substitua as linhas no início do arquivo:

    <!--
     Published by JAX-WS RI at http://jax-ws.dev.java.net. A versão da RI é JAX-WS RI 2.1.2-hudson-182-RC1.
    -->
    
                <xs:schema version="1.0" targetNamespace="http://album.flower/">

    pelo seguinte:

    <xs:schema xmlns:tns="http://album.flower/"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                version="1.0" targetNamespace="http://album.flower/">
  6. Em seguida, alteraremos o arquivo WSDL para que nosso arquivo de esquema local seja referenciado em vez daquele que está on-line. Abra o arquivo WSDL no modo Design, como mostrado abaixo.
    Aplicativo Java com ws consumido

    Expanda o nó Tipos. Clique com o botão direito do mouse no nó Esquema referenciado. Escolha Adicionar > Importação. A caixa de diálogo Adicionar importação se abre.
  7. Como mostrado abaixo, agora você pode ir para o arquivo do esquema e selecioná-lo:


    Aplicativo Java com ws consumido

  8. Clique em OK.

  9. Exclua a outra referência do esquema, que se refere ao arquivo de esquema on-line, ao qual não desejamos mais fazer referência, e você verá que pode acessar os nós a partir do arquivo do esquema, indicando que agora a referência está correta:
    Aplicativo Java com ws consumido
  10. Precisamos fazer explicitamente com que o servidor da aplicação use nossa própria versão do arquivo WSDL, caso contrário, o servidor da aplicação irá gerar seu próprio arquivo WSDL, a partir das nossas anotações do serviço Web.
    @WebService(serviceName = "FlowerService",
            wsdlLocation = "WEB-INF/wsdl/FlowerService.wsdl")

    Agora você deve ver o seguinte na classe do serviço Web:
    Aplicativo Java com ws consumido

  11. Finalmente, a finalidade de toda esta seção é ter um arquivo do esquema modificado que especifica o tipo de conteúdo esperado do elemento de retorno. Para identificar o elemento de retorno no arquivo do esquema, abra o arquivo do esquema e observe a linha abaixo, assim como o código na linha 39, ambos devem estar em linhas diferentes em seu próprio aplicativo:
    Aplicativo Java com ws consumido
  12. Mantenha todos os elementos existentes, mas adicione os atributos seguintes a ambos:

    xmime:expectedContentTypes="image/jpeg" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"

    Agora você deve ver o seguinte nas mesmas linhas:
    Aplicativo Java com ws consumido

  13. Agora, quando reimplantar o serviço Web no aplicativo Testador, e chamar uma das operações, você verá que uma imagem é retornada corretamente:
    Aplicativo Java com ws consumido

Agora que o aplicativo Testador confirmou que as imagens estão sendo retornadas corretamente, podemos criar nosso cliente Swing para recuperá-las e exibi-las.

Observação: Você pode localizar versões corretamente modificadas dos arquivos WSDL e do esquema no projeto de amostra baixo. Ambos os arquivos estão na pasta web/WEB-INF/wsdl.

Próxima etapa:

Criando o cliente Swing

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 .

Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by