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構建與運行的,可是為什么沒有中文版啊。總是缺貨。只能看英文的了。希望能看進去。