Serviço Web passando dados binários, parte 4: Modificando os arquivos do esquema e WSDL
Nesta seção, você adicionará o arquivo WSDL e o arquivo do esquema ao aplicativo da Web. Em seguida, você modificará o arquivo de esquema interpretar matrizes de bytes como Imagens. Você também editará o código-fonte do serviço da Web para localizar corretamente o esquema e o arquivo WSDL. No processo, é apresentada uma introdução a várias ferramentas no IDE que o ajudam com os arquivos WSDL e do esquema.
É possível aplicar o procedimento desta seção a qualquer serviço da Web JAX-WS para passar qualquer tipo MIME como dados binários. Iniciando um serviço da Web que passe dados binários, como foi criado nas Lições 2 e 3, você personaliza o WSDL e o esquema XML do serviço. No arquivo de esquema XML personalizado, você adiciona um atributo expectedContentTypes="mime_type" ao elemento de retorno dos dados binários. Esse atributo informa ao cliente que ele deverá mapear os dados binários para o tipo Java (de acordo com o mapeamento de tipo MIME > Java) em vez de para uma matriz de bytes. Neste tutorial, você mapeará os dados binários para java.awt.Image, mas poderá mapear os dados binários para qualquer um dos tipos Java fornecidos na especificação do JAXB 2.0, conforme descrito no Guia do usuário JAX-WS.
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 da Web e os clientes que o consomem analisem os dados da imagem JPEG que são passados como dados binários.
Para modificar o WSDL e os arquivos do esquema:
Na janela Projetos, expanda o nó do aplicativo da Web FlowerService até chegar ao nó WEB-INF. Clique com o botão direito do mouse na pasta WEB-INF e selecione Novo > Pasta. (Talvez seja preciso selecionar Novo > Outro e, em seguida, a categoria Outro).
Clique em Próximo. A página Nome e localização é aberta. Nomeie a pasta wsdl.
Clique em Terminar. A pasta wsdl é exibida na janela Projetos.
Expanda o nó Serviços Web e clique com o botão direito do mouse no nó FlowerService. Escolha Gerar e copiar WSDL...
A caixa de diálogo Gerar e copiar WSDL é aberta com uma árvore de navegação. Navegue para a pasta wsdl que foi criada (FlowerAlbumService > Web > WEB-INF > wsdl) e clique em OK.
Agora, você vê FlowerService.wsdl e FlowerService_schema1.xsd no nó wsdl. Você também vê um novo nó para Códigos-fonte gerados (jax-ws).
Explicitamente, faça com que o servidor de aplicativos utilize sua própria versão do arquivo WSDL. Caso contrário, o servidor de aplicativos gerará seu próprio arquivo WSDL. Abra FlowerService.java e localize a anotação @WebService. Adicione o parâmetro wsdlLocation="WEB-INF/wsdl/FlowerServiceService.wsdl" a esta anotação, como mostrado abaixo:
Modifique o arquivo de esquema FlowerService_schema1.xsd para que especifique o tipo de conteúdo do elemento retornado. Para identificar o elemento de retorno no arquivo de esquema, abra o arquivo de esquema e encontre os tipos complexos getThumbnailResponse e getFlowerResponse:
Agora, quando reimplantar o serviço da 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, é possível criar um cliente Swing para recuperá-las e exibi-las.
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 correio .