// 
//     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 服务学习资源
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Web 服务学习资源 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Web 服务学习资源


== *什么是 Web 服务？*

Web 服务是可供外部使用的分布式应用程序组件。您可以使用这些服务来集成用不同语言编写并在不同平台上运行的计算机应用程序。Web 服务与语言和平台无关，这是因为供应商已遵循通用的 Web 服务标准。

Web 服务应用程序将部署到 Java EE 应用服务器中，例如 GlassFish/Sun Java System 应用服务器。

本页提供的一些 NetBeans 文档和资源链接可以帮助您了解如何使用 NetBeans IDE 开发 Web 服务应用程序。

== 入门指南 

* link:../docs/websvc/intro-ws.html[+Web 服务简介+]

== 教程和文章

=== SOAP Web 服务

* link:../docs/websvc/jax-ws.html[+JAX-WS Web 服务入门指南+]
* link:../docs/websvc/client.html[+开发 JAX-WS Web 服务客户端+]
* 在 SOAP 中传递二进制数据：一个由五部分组成的教程
** link:../docs/websvc/flower_overview.html[+第 1 部分：概述+]
** link:../docs/websvc/flower_ws.html[+第 2 部分：创建 Web 服务+]
** link:../docs/websvc/flower-code-ws.html[+第 3 部分：对 Web 服务进行编码和测试+]
** link:../docs/websvc/flower_wsdl_schema.html[+第 4 部分：修改方案文件和 WSDL 文件+]
** link:../docs/websvc/flower_swing.html[+第 5 部分：创建 Swing 客户端+]

=== REST 风格的 Web 服务

* link:../docs/websvc/rest.html[+REST 风格的 Web 服务入门指南+]
* link:http://netbeans.dzone.com/nb-generate-simpler-rest[+DZone：用于生成更简单的 REST 风格 Web 服务的 NetBeans IDE+]
* link:http://netbeans.dzone.com/nb-smugmug-client[+DZone：在 NetBeans IDE 中使用 SmugMug 创建 Java 客户端+]
* link:http://netbeans.dzone.com/articles/how-to-combine-rest-and-ejb-31[+DZone：如何将 REST 服务与 EJB 3.1 相结合+]

=== 服务型软件 (SaaS)

* link:../docs/websvc/zillow.html[+SaaS：Zillow+]

== 社区提供的文档

* link:http://netbeans.dzone.com/nb-hierarchical-web-services[+NetBeans IDE 中的分层 Web 服务开发+]，作者：Jayasurya Venug
* link:http://buttso.blogspot.com/2011/02/using-jax-rs-with-weblogic-server-1034.html[+Steve Button 的博客：将 JAX-RS [和 NetBeans IDE] 与 WebLogic Server 10.3.4 结合使用+]
* link:http://www.adam-bien.com/roller/abien/entry/simplest_possible_ejb_3_13[+尽可能简单的 EJB 3.1/REST (JSR 311) 组件+]，作者：Adam Bien
* link:http://wiki.netbeans.org/TransformingSOAPMessagesWithXSLT[+使用 XSLT 转换 SOAP 消息+]，作者：Siegfried Bolz
* link:http://wiki.netbeans.org/JavaClientForDeliciousUsingNetBeans[+Creating a Java Client for del.icio.us RESTful Web Services+]（为 del.icio.us REST 风格的 Web 服务创建 Java 客户端），作者：Amit Kumar Saha
* link:http://wiki.netbeans.org/SOAPclientForOpenCalais[+用于 Open Calais 的 SOAP 客户端+]，作者：Amit Kumar Saha

== 截屏视频

* java.net：link:http://download.java.net/javaee5/screencasts/metro-nb6/[+使用 Metro/GlassFish 实现可靠安全的 Web 服务+]
* YouTube：link:http://youtube.com/watch?v=K8OtFD6RLMM[+SOCRADES：Sun SPOT 设备上的 Web 服务演示+]

== 其他资源

=== _使用 NetBeans IDE 开发应用程序_用户指南

* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1842[+开发和保护 Web 服务+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1035[+开发 Web 应用程序+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1216[+开发企业应用程序+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1649[+使用 Web 和应用程序服务器+]

=== 常见问题解答

* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-WebServicesDevelopment[+Web 服务开发常见问题解答+]

=== 教程和其他文档

* link:https://weblogs.java.net/blog/caroljmcdonald/archive/2013/09/16/example-backbonejs-jax-rs-jpa-application[+示例 Backbone.js、JAX-RS、JPA 应用程序+]
* link:http://coenraets.org/blog/2011/12/restful-services-with-jquery-and-java-using-jax-rs-and-jersey/[+在 JQuery 和 Java 中使用 JAX-RS 和 Jersey 创建 REST 风格的服务+]
* link:https://glassfish.java.net/[+加入 GlassFish 社区 +]
* link:http://www.mysql.com/why-mysql/java/[+MySQL 和 Java - 资源+]
* link:http://java.dzone.com/news/5-techniques-create-web-servic[+通过 WSDL 创建 Java Web 服务的 5 种技术+]
* link:http://netbeans.dzone.com/news/spring-framework-support-rest-[+Jersey REST 0.7 中的 Spring Framework 支持+]
* link:http://netbeans.dzone.com/news/advanced-web-service-interoper[+简化高级 Web 服务互操作性+]
* link:http://netbeans.dzone.com/news/getting-started-with-software-[+“服务型软件”入门+]

=== 博客

* link:http://javaevangelist.blogspot.com/[+John Yeary 的博客：NetBeans IDE 上的 Web 服务+]
* link:http://www.java.net/blogs/caroljmcdonald/[+Carol McDonald：Java EE+]
* link:http://blogs.oracle.com/japod/[+Jakub Podlasek 的博客：Jersey REST 风格的 Web 服务+]
* link:http://blogs.oracle.com/geertjan/[+Geertjan Wielenga：NetBeans IDE 平台+]
