| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Web Service Especificando Dados Binários, parte 4: Modificando os Arquivos WSDL e de Esquema |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Web Service Especificando Dados Binários, parte 4: Modificando os Arquivos WSDL e de Esquema - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Web Service Especificando Dados Binários, parte 4: Modificando os Arquivos WSDL e de Esquema |
| |
| Nesta lição você adicionará o arquivo WSDL e o arquivo de esquema à aplicação web. Em seguida, você modificará o arquivo de esquema para interpretar arrays de bytes como Imagens. Você também editará o código-fonte do Web service para localizar corretamente o esquema e o arquivo WSDL. No processo, você é apresentado a várias ferramentas no IDE que o ajudam com os arquivos WSDL e de Esquema. |
| |
| Você pode aplicar o procedimento desta seção a qualquer Web service JAX-WS para passar qualquer tipo MIME como dados binários. Iniciando um Web service 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 os dados binários deverão ser mapeados para um tipo Java (de acordo com o mapeamento de tipo MIME > Java), em vez de para um array 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 link:http://jax-ws.dev.java.net/nonav/2.1.4/docs/mtom-swaref.html[+Guia do Usuário JAX-WS+]. |
| |
| É possível fazer download de uma amostra completa do Web service do link:https://netbeans.org/projects/samples/downloads/download/Samples%252FWeb%2520Services%252FWeb%2520Service%2520Passing%2520Binary%2520Data%2520--%2520EE6%252FFlowerAlbumService.zip[+Catálogo de Amostras do NetBeans+]. |
| |
| *Lições Deste Tutorial* |
| |
| image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0"] |
| |
| 1. link:./flower_overview.html[+Visão Geral+] |
| 2. link:./flower_ws.html[+Criando o Web Service+] |
| 3. link:./flower-code-ws.html[+Codificando e Testando o Web Service+] |
| 4. => Modificando os Arquivos de Esquema e WSDL para Passar Dados Binários |
| 5. link:./flower_swing.html[+ Criando o Cliente Swing+] |
| |
| |
| == Modificando o Arquivo de Esquema e WSDL para Passar Dados Binários |
| |
| No procedimento a seguir, você cria arquivos WSDL e de Esquema XML modificados para o Web service criado em um tutorial anterior. Os arquivos WSDL e de Esquema modificados permitem que o Web service e os clientes que o consomem façam parsing dos dados da imagem JPEG que são passados como dados binários. |
| |
| *Para modificar os arquivos WSDL e de Esquema:* |
| |
| 1. Na janela Projetos, expanda o nó da aplicação Web FlowerService até chegar ao nó ``WEB-INF`` . Clique com o botão direito do mouse na pasta ``WEB-INF`` e selecione Nova > Pasta. (Talvez você precise selecionar Novo > Outro e, em seguida, a categoria Outro). |
| image::images/new-file-wiz-folder.png[] |
| |
| [start=2] |
| . Clique em Próximo. A página Nome e Localização será aberta. Nomeie a pasta ``wsdl`` . |
| image::images/wsdl-folder-name-location.png[] |
| |
| [start=3] |
| . Clique em Finalizar. A pasta ``wsdl`` é exibida na Janela Projetos. |
| image::images/wsdl-folder.png[] |
| |
| [start=4] |
| . Expanda o nó Web Services e clique com o botão direito do mouse no nó FlowerService. Selecione Gerar e Copiar WSDL... |
| |
| [start=5] |
| . A caixa de diálogo Gerar e Copiar WSDL será 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). |
| |
| image::images/generated-wsdl-and-schema.png[] |
| |
| [start=6] |
| . Explicitamente, faça com que o servidor de aplicações utilize sua própria versão do arquivo WSDL. Caso contrário, o servidor de aplicações 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: |
| |
| [source,java] |
| ---- |
| |
| @WebService(serviceName = "FlowerService"*, wsdlLocation = "WEB-INF/wsdl/FlowerService.wsdl")* |
| ---- |
| |
| [start=7] |
| . Modifique o arquivo de esquema ``FlowerService_schema1.xsd`` para que especifique o tipo de conteúdo do elemento esperado. Para identificar o elemento de retorno no arquivo de esquema, abra o arquivo de esquema e encontre os tipos complexos ``getThumbnailResponse`` e ``getFlowerResponse`` : |
| |
| [source,xml] |
| ---- |
| |
| <xs:complexType name="getThumbnailsResponse"><xs:sequence><xs:element name="return" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType> |
| ---- |
| |
| [source,xml] |
| ---- |
| |
| <xs:complexType name="getFlowerResponse"><xs:sequence><xs:element name="return" type="xs:base64Binary" minOccurs="0"/> </xs:sequence></xs:complexType> |
| ---- |
| |
| [start=8] |
| . Adicione os atributos a seguir aos dois elementos de retorno ( ``<xs:element name="return".../>):`` . |
| |
| [source,java] |
| ---- |
| |
| xmime:expectedContentTypes="image/jpeg" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" |
| ---- |
| |
| Agora você deve ver o seguinte nas mesmas linhas. |
| |
| |
| [source,xml] |
| ---- |
| |
| <xs:complexType name="getThumbnailsResponse"><xs:sequence><xs:element name="return" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded" |
| xmime:expectedContentTypes="image/jpeg" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"/></xs:sequence></xs:complexType> |
| ---- |
| |
| [source,xml] |
| ---- |
| |
| <xs:complexType name="getFlowerResponse"><xs:sequence><xs:element name="return" type="xs:base64Binary" minOccurs="0" |
| xmime:expectedContentTypes="image/jpeg" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"/> </xs:sequence></xs:complexType> |
| ---- |
| |
| [start=9] |
| . Agora, quando reimplantar o Web service na aplicação de Teste e chamar uma das operações, você verá que uma imagem é retornada corretamente: |
| image::images/ws-tester-goodschema.png[] |
| |
| Agora que a aplicação de Teste confirmou que as imagens estão sendo retornadas corretamente, você pode criar um cliente Swing para recuperá-las e exibi-las. |
| |
| |
| == Próxima Etapa: |
| |
| link:./flower_swing.html[+Criando o Cliente Swing+] |
| |
| link:/about/contact_form.html?to=3&subject=Feedback:%20Flower%20WSDL%20EE6[+Enviar Feedback neste Tutorial+] |
| |
| Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos das funcionalidades de desenvolvimento Java EE do NetBeans IDE, link:../../../community/lists/top.html[+inscreva-se na lista de notícias nbj2ee@netbeans.org+]. |
| |