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.
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:
Expanda o aplicativo Web até alcançar o nó wsdl:
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ó.
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.
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:
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:
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">
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/">
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.
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.
Como mostrado abaixo, agora você pode ir para o arquivo do esquema e selecioná-lo:
Clique em OK.
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:
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.
Agora você deve ver o seguinte na classe do serviço Web:
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:
Mantenha todos os elementos existentes, mas adicione os atributos seguintes a ambos:
Agora, quando reimplantar o serviço Web no aplicativo Testador, e chamar uma das operações, você verá que uma imagem é retornada corretamente:
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.
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 .