// 
//     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 服务传递二进制数据，第 1 部分：概述
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: 通过 Web 服务传递二进制数据，第 1 部分：概述 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, 通过 Web 服务传递二进制数据，第 1 部分：概述

在本教程中，将创建一个包含 Web 服务的 Java EE Web 应用程序，该应用程序将作为无状态会话 Bean 来实现。同时还会向该 Web 应用程序添加包含四个 JPEG 文件的包。Web 服务有两种操作可供客户端访问，一是获取单个图像，二是以缩略图形式获取一组所有 4 个图像。将添加一些私有方法，用于将 JPEG 文件转换为字节数组，然后将这些字节数组转换为  ``Image``  对象。在 Java EE 中，将这些私有方法直接放在 Web 服务中，因为 Web 服务还是一个 EJB。

在创建 Web 服务后，将其部署到 GlassFish Server 3.1 或更高版本的实例中。使用 NetBeans IDE 的内置 Web 服务测试器可查看样例 SOAP 请求和响应消息。

默认的 JAX-WS 服务基础结构无法通知客户端需要将二进制数据解释为 JPEG 文件。因此，将生成一个 XML 方案的副本以及 WSDL 文件，然后编辑 XML 方案以告知任何客户端期望的返回元素是  ``image/jpeg``  内容类型。还将更改服务代码以使用定制的 WSDL 和方案。

最后，将创建一个 Java 客户端应用程序，用于在相册中显示通过 Swing 组件创建的图像。


*本教程中的课程*

image::images/netbeans-stamp-80-74-73.png[title="此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0"]

1. => 概述
2. link:./flower_ws.html[+创建 Web 服务+]
3. link:./flower-code-ws.html[+对 Web 服务进行编码和测试+]
4. link:./flower_wsdl_schema.html[+修改方案文件和 WSDL 文件以传递二进制数据+]
5. link:./flower_swing.html[+创建 Swing 客户端+]


=== 本教程所需要的软件

*要学习本教程，您需要具备以下软件和资源。*

|===
|软件或资源 |要求的版本 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Java EE 下载包 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java 开发工具包 (JDK)+] |版本 7 或 8 

|符合 Java EE 规范的 Web 服务器或应用服务器 |link:http://glassfish.java.net/[+GlassFish Server Open Source Edition 3.1 或更高版本+]
 

|本教程中使用的图片 |link:images/rose.jpg[+rose.jpg+]
link:images/sunflower.jpg[+sunflower.jpg+]
link:images/aster.jpg[+aster.jpg+]
link:images/honeysuckle.jpg[+honeysuckle.jpg+] 
|===

*注：*GlassFish Server 可以随同 NetBeans IDE 的 Java EE 下载包一起安装。或者，还可以访问 link:https://glassfish.java.net/download.html[+GlassFish Server 下载页+]。

*提示：*（可选）要解决疑难问题，可以link:https://netbeans.org/files/documents/4/2343/SoapWithAttachments.zip[+下载完整的样例+]并查看其源代码。

执行完本教程中的操作后，将具有一个可运行的 Java Swing 应用程序，它通过 Web 服务使用 JPEG 图像，具体结果显示如下。

image::images/running-client.png[title="显示从 Web 服务传递的所有鲜花图像的 JFrame"]


== 后续步骤：

link:./flower_ws.html[+创建 Web 服务+]

link:/about/contact_form.html?to=3&subject=Feedback:%20Flower%20Overview%20EE6[+发送有关此教程的反馈意见+]



== 另请参见

有关使用本教程前的背景信息，请参见以下资源：

* link:./jax-ws.html[+JAX-WS Web 服务入门指南+]
* link:../../docs/websvc/client.html[+开发 Web 服务客户端+]
* link:../javaee/javaee-gettingstarted.html[+Java EE 应用程序入门指南+]
* link:./wsit.html[+Advanced Web Service Interoperability+]（高级 Web 服务互操作性）

要发送意见和建议、获得支持以及随时了解 NetBeans IDE Java EE 开发功能的最新开发情况，请link:../../../community/lists/top.html[+加入 nbj2ee@netbeans.org 邮件列表+]。

