Java Web 服务:构建与运行(影印版)》提供了对Java的API的一个介绍,包括针对XML Web服务的JAX-WS和针对RESTful Web服务的JAX-RS。《Java Web服务:构建与运行》通过提供混合架构概述、完整的工作代码示例以及短而的编译、部署和执行应用程序的指示,采用明确实用的方法来处理这些技术。你将学习如何从头开始编写Web服务以及集成现有服务到你的Java应用程序中。有了这《Java Web 服务:构建与运行(影印版)》,你将:
· 理解基于SOAP的和REST样式的服务的区别
· 编写、部署和使用基于SOAP的核心Java服务
· 理解Web服务描述语言(WSDL)服务契约
· 认识SOAP消息的结构
· 学习如何交付基于Java的RESTful Web服务和消耗商业RESTful服务
· 了解对基于SOAP和基于REST的Web服务的安全要求
· 学习如何在各种环境下部署JAX-WS服务
不管是学生还是有经验的程序员,当你需要立即运用这些技术展开工作时,《Java Web服务:构建与运行》都是你需要的一本理想的简明指南。
Martin Kalin, 德保罗大学计算机和数字媒体学院教授,拥有西北大学的博士学位。他撰写过关于C语言、C++和Java的书,并参与开发过大型分布式系统中的进程调度和产品配置。
Preface
1. Java Web Services Quickstart
What Are Web Services?
What Good Are Web Services?
A First Example
The Service Endpoint Interface and Service Implementation Bean
A Java Application to Publish the Web Service
Testing the Web Service with a Browser
A Perl and a Ruby Requester of the Web Service
The Hidden SOAP
A Java Requester of the Web Service
Wire-Level Tracking of HTTP and SOAP Messages
What`s Clear So Far?
Key Features of the First Code Example
Java`s SOAP API
An Example with Richer Data Types
Publishing the Service and Writing a Client
Multithreading the Endpoint Publisher
What`s Next?
2. All About WSDLs
What Good Is a WSDL?
Generating Client-Support Code from a WSDL
The @WebResult Annotation
WSDL Structure
A Closer Look at WSDL Bindings
Key Features of Document-Style Services
Validating a SOAP Message Against a WSDL`s XML Schema
The Wrapped and Unwrapped Document Styles
Amazon`s E-Commerce Web Service
An E-Commerce Client in Wrapped Style
An E-Commerce Client in Unwrapped Style
Tradeoffs Between the RPC and Document Styles
An Asynchronous E-Commerce Client
The wsgen Utility and JAX-B Artifacts
A JAX-B Example
Marshaling and wsgen Artifacts
An Overview of Java Types and XML Schema Types
Generating a WSDL with the wsgen Utility
WSDL Wrap-Up
Code First Versus Contract First
A Contract-First Example with wsimport
A Code-First, Contract-Aware Approach
Limitations of the WSDL
What`s Next?
3. SOAP Handling
SOAP: Hidden or Not?
SOAP 1.1 and SOAP 1.2
SOAP Messaging Architecture
Programming in the JWS Handler Framework
The RabbitCounter Example
Injecting a Header Block into a SOAP Header
Configuring the Client-Side SOAP Handler
Adding a Handler Programmatically on the Client Side
Generating a Fault from a @WebMethod
Adding a Logical Handler for Client Robustness
Adding a Service-Side SOAP Handler
Summary of the Handler Methods
The RabbitCounter As a SOAP 1.2 Service
The MessageContext and Transport Headers
An Example to Illustrate Transport-Level Access
Web Services and Binary Data
Three Options for SOAP Attachments
Using Base64 Encoding for Binary Data
Using MTOM for Binary Data
What`s Next?
4. RESTful Web Services
What Is REST?
Verbs and Opaque Nouns
From @WebService to @WebServiceProvider
A RESTful Version of the Teams Service
The WebServiceProvider Annotation
Language Transparency and RESTful Services
Summary of the RESTful Features
Implementing the Remaining CRUD Operations
Java API for XML Processing
The Provider and Dispatch Twins
A Provider/Dispatch Example
More on the Dispatch Interface
A Dispatch Client Against a SOAP-based Service
Implementing RESTful Web Services As HttpServlets
The RabbitCounterServlet
Requests for MIME-Typed Responses
Java Clients Against Real-World RESTful Services
The Yahoo! News Service
The Amazon E-Commerce Service: REST Style
The RESTful Tumblr Service
WADLing with Java-Based RESTful Services
JAX-RS: WADLing Through Jersey
The Restlet Framework
What`s Next?
5. Web Services Security
Overview of Web Services Security
Wire-Level Security
HTTPS Basics
Symmetric and Asymmetric Encryption/Decryption
How HTTPS Provides the Three Security Services
The HttpsURLConnection Class
Securing the RabbitCounter Service
Adding User Authentication
HTTP BASIC Authentication
Container-Managed Security for Web Services
Deploying a @WebService Under Tomcat
Securing the @WebService Under Tomcat
Application-Managed Authentication
Container-Managed Authentication and Authorization
Configuring Container-Managed Security Under Tomcat
Using a Digested Password Instead of a Password
A Secured @WebServiceProvider
WS-Security
Securing a @WebService with WS-Security Under Endpoint
The Prompter and the Verifier
The Secured SOAP Envelope
Summary of the WS-Security Example
What`s Next?
6. JAX-WS in Java Application Servers
Overview of a Java Application Server
Deploying @WebServices and @WebServiceProviders
Deploying @WebServiceProviders
Integrating an Interactive Website and a Web Service
A @WebService As an EJB
Implementation As a Stateless Session EJB
The Endpoint URL for an EBJ-Based Service
Database Support Through an @Entity
The Persistence Configuration File
The EJB Deployment Descriptor
Servlet and EJB Implementations of Web Services
Java Web Services and Java Message Service
WS-Security Under GlassFish
Mutual Challenge with Digital Certificates
MCS Under HTTPS
MCS Under WSIT
The Dramatic SOAP Envelopes
Benefits of JAS Deployment
What`s Next?
7. Beyond the Flame Wars
A Very Short History of Web Services
The Service Contract in DCE/RPC
XML-RPC
Standardized SOAP
SOAP-Based Web Services Versus Distributed Objects
SOAP and REST in Harmony
Index
The HTTP start line comes first and specifies the request method, in this case thePOST method, which is typical of requests for dynamic resources such as webservices or other web application code (for example, a Java servlet) as opposed torequests for a static HTML page. In this case, a POST rather than a GET requestis needed because only a POST request has a body, which encapsulates the SOAPmessage. Next comes the request URL followed by the HTTP version, in this case1.1, that the requester understands. HTTP 1.1 is the current version.
Next come the HTTP headers, which are key/value pairs in which a colon (:) separates the key from the value. The order of the key/value pairs is arbitrary. The keyAccept occurs three times, with a MIME (Multipurpose Internet Mail Extensions) type/subtype as the value: text/xml, multipart/, and application/soap. These threepairs signal that the requester is ready to accept an arbitrary XML response, aresponse with arbitrarily many attachments of any type (a SOAP message can havearbitrarily many attachments), and a SOAP document, respectively. The HTTP keySOAPAction is often present in the HTTP header of a web service request and thekey's value may be the empty string, as in this case; but the value also might be thename of the requested web service operation.
Two CRLF (Carriage Return Line Feed) characters, which correspond to two Java\n characters, separate the HTTP headers from the HTTP body, which is requiredfor the POST verb but may be empty. In this case, the HTTP body contains theSOAP document, commonly called the SOAP envelope because the outermost ordocument element is named Envelope. In this SOAP envelope, the SOAP body contains a single element whose local name is getTimeAsString, which is the name ofthe web service operation that the client wants to invoke. The SOAP request envelope is simple in this example because the requested operation takes noarguments.
"《Java Web服务:构建与运行》有很多我发现非常实用的实例,从使用Amazon Associates Web服务到有很好的图解和安全说明以及加密密码的关于安全的一章,还包括使用证书的示例,这部分内容我还没在其他书中见过。" ——Greg Ostravich,Denver Java用户组主席
英文版的
很好的书,很好的快递服务,很快的处理速度。
感觉还可以感觉还可以感觉还可以
有例子入手,讲的也细致
基础,权威,翔实,全面
好
正在读。。。
这本书写的挺详细的。。很适合初学者。。不过竟然是英文版的。。
一步一步交你了解JDK6中对webservice的支持
本来想买java web services构建与运行的,可是为什么没有中文版啊。总是缺货。只能看英文的了。希望能看进去。