annotate apache-xmlrpc-3.1.3/docs/extensions.html @ 191:b2f0cd0cff6c default tip

Added tag Version-1.0 for changeset 79046b4e5990
author Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
date Tue, 29 Nov 2011 15:52:44 +0900
parents db5f735fd2b4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
151
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
2
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
3
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
4
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
5
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
6
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
7
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
8
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
9
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
10
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
11
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
12
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
13 <html xmlns="http://www.w3.org/1999/xhtml">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
14 <head>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
15 <title>ws-xmlrpc - Apache XML-RPC Vendor Extensions</title>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
16 <style type="text/css" media="all">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
17 @import url("./css/maven-base.css");
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
18 @import url("./css/maven-theme.css");
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
19 @import url("./css/site.css");
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
20 </style>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
21 <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
22 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
23 </head>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
24 <body class="composite">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
25 <div id="banner">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
26 <a href="" id="bannerLeft">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
27
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
28 <img src="images/xmlrpc-logo.gif" alt="" />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
29
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
30 </a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
31 <div class="clear">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
32 <hr/>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
33 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
34 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
35 <div id="breadcrumbs">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
36
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
37
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
38
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
39
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
40
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
41
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
42
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
43
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
44 <div class="xleft">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
45 Last Published: 2010-02-06
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
46 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
47 <div class="xright"> <a href="http://www.apache.org/" class="externalLink">Apache</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
48 |
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
49 <a href="../">Webservices</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
50 |
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
51 <a href="">XML-RPC</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
52
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
53
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
54
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
55
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
56
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
57
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
58
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
59
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
60 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
61 <div class="clear">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
62 <hr/>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
63 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
64 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
65 <div id="leftColumn">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
66 <div id="navcolumn">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
67
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
68
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
69
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
70
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
71
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
72
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
73
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
74
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
75 <h5>XML-RPC</h5>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
76 <ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
77
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
78 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
79 <a href="index.html">Overview</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
80 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
81
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
82 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
83 <a href="download.html">Download</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
84 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
85
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
86 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
87 <a href="changes-report.html">Changes</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
88 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
89
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
90 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
91 <a href="mail-lists.html">Mailing Lists</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
92 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
93
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
94 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
95 <a href="contributing.html">Contributing</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
96 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
97
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
98 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
99 <a href="xmlrpc2">XML-RPC 2</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
100 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
101
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
102 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
103 <a href="links.html">Links</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
104 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
105 </ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
106 <h5>Documentation</h5>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
107 <ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
108
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
109 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
110 <a href="client.html">Client Classes</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
111 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
112
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
113 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
114 <a href="server.html">Server Side XML-RPC</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
115 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
116
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
117 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
118 <strong>Vendor Extensions</strong>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
119 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
120
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
121 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
122 <a href="ssl.html">SSL</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
123 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
124
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
125 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
126 <a href="introspection.html">Introspection</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
127 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
128
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
129 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
130 <a href="advanced.html">Advanced Techniques</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
131 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
132
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
133 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
134 <a href="types.html">XML-RPC Types</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
135 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
136
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
137 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
138 <a href="faq.html">FAQ</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
139 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
140
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
141 <li class="none">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
142 <a href="apidocs/index.html">Javadocs</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
143 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
144 </ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
145 <h5>Project Documentation</h5>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
146 <ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
147
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
148
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
149
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
150
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
151
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
152
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
153
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
154
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
155
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
156
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
157
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
158
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
159
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
160
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
161
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
162
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
163
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
164
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
165
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
166
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
167
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
168
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
169
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
170
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
171
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
172
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
173
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
174 <li class="collapsed">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
175 <a href="project-info.html">Project Information</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
176 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
177
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
178
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
179
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
180
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
181
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
182
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
183
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
184
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
185
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
186 <li class="collapsed">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
187 <a href="project-reports.html">Project Reports</a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
188 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
189 </ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
190 <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
191 <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
192 </a>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
193
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
194
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
195
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
196
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
197
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
198
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
199
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
200
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
201 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
202 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
203 <div id="bodyColumn">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
204 <div id="contentBox">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
205 <div class="section"><h2>Introduction</h2>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
206 <p>The <a href="http://www.xmlrpc.com/spec" class="externalLink">XML-RPC specification</a> has been published in 1999. In the past 6 years, it was subject to some minor corrections. Some things have been made clearer. However, it hasn't really changed or evolved. Dave Winer, the XML-RPC specifications author, has always rejected any suggestions in that direction. Of course, he did so with a good reason: One of XML-RPC's major targets was portability over arbitrary platforms and programming languages. Clearly, this target has been met and any further development would mean putting this at risk. </p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
207 <p>On the other hand, this is most unfortunate: Obeying the specification means accepting really serious limitations. For example, one cannot even use all of Java's primitive data types, although nowadays they have equivalents in almost any programming language. Possibly even more important is the requirement to send a content-length header: HTTP/1.1 and its chunk encoding are the definite standard in 2005 for both HTTP clients and servers. Consequently, the content-length header is, at best, superfluos. Of course, having an additional header wouldn't be too much of a problem. But calculating the header value enforces, that request and response are written to byte arrays, before actually sending them. This is both slow and memory consuming.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
208 <p>Version 3 of Apache XML-RPC is a compromise: By default it still meets the specification. However, you <b>may</b> enable additional features, called vendor extensions. Of course, these features only work, if you have a streaming version of Apache XML-RPC on both sides. In practice, it occurs very frequently, that both sides are controlled by the same people. Besides, the vendor extensions are documented very clearly here: Adding these features to an existing XML-RPC library would mean almost no effort, so possibly someone does. You'r welcome.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
209 <p>But the purpose of this document is more than documentation: It is also to receive feedback and discuss the extensions specification and implementation. Nothing is fixed, and everything can be changed.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
210 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
211 <div class="section"><h2>Enabling extensions</h2>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
212 <p>Vendor extensions cannot be used, unless they are explicitly enabled. In some cases, you have to enable specific features, for example request compression. But in all cases, you need to enable the use of vendor extensions at all, because that is the step, where you knowingly say: &quot;I know, I am now in violation of the original XML-RPC specification.&quot;</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
213 <p>For that reasons, both server and client have a property <tt>enabledForExtensions</tt> in their respective configuration. Setting this property to true enables the extensions. </p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
214 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
215 <div class="section"><h2>Streaming Mode</h2>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
216 <p>Putting the client or the server into streaming mode means, that data being sent to the other side is almost directly written to the network connection. (Besides, of course, using a moderately sized <tt>BufferedOutputStream</tt>, because one would not want to have a network connection for any <tt>write()</tt> call.)</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
217 <p>In particular, the request, or response, isn't written to a <tt>ByteArrayOutputStream</tt> internally. Without streaming mode, this is always the case. But there is more: For example, the base64 encoder is also writing directly without internal buffering. (There are few other base64 encoders around, which support streaming mode.)</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
218 <p>To enable streaming mode on the client, set the properties <tt>enabledForExtensions</tt> and <tt>contentLengthOptional</tt>. This will take care for the request, which is being sent to the server.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
219 <p>On the server, things are a little bit more complicated. Currently, the server behaves as follows: If streaming mode is disabled, then the server will always behave like a standard XML-RPC server. Otherwise, the server will verify, whether the client sends a content-length header. If so, then the server assumes that the client is able to accept a missing content-length header in the response as well. Otherwise, the server will still disable streaming for this particular requests. In other words, traditional clients will still receive a traditional response and one server can serve both data types.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
220 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
221 <div class="section"><h2>Compression</h2>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
222 <p>HTTP Request compression is a standard HTTP feature and works by using the HTTP headers <tt>Accept-Encoding</tt> and <tt>Content-Encoding</tt>. In other words, it is quite likely, that request compression is supported by your HTTP client or server library. For example, the Apache httpd does so by using the <tt>mod_deflate</tt> module.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
223 <p>Of course, it's more convenient to have the XML-RPC library doing this. If the client should compress the response, then you need to set the properties <tt>enabledForExtensions</tt> and <tt>gzipCompressing</tt>. The XML-RPC request will be compressed (on-the-fly in streaming mode, of course) and the HTTP header <tt>Content-Encoding</tt> will be set to <tt>gzip</tt>. Needless to say, you may only do so, if the server is ready to accept such requests.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
224 <p>Compressing the request doesn't mean that the response is compressed as well. First of all, the server will only send a compressed response, if the server property <tt>enabledForExtensions</tt> is set. Additionally, the server will read the HTTP header <tt>Accept-Encoding</tt>: If it doesn't contain <tt>gzip</tt> encoding, then compression cannot take place. In other words, the client must send this header. You need to set the client properties <tt>enabledForCompression</tt> and <tt>gzipRequesting</tt> to achieve that.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
225 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
226 <div class="section"><h2>Data Types</h2>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
227 <p>Enabling vendor extensions means also, that several additional data types may be sent. (See <a href="./types.html">Data Types</a> for details.) These different data types require an extension of the XML-RPC network protocol.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
228 <p>All of these data types are using a special XML namespace. Using this namespace is a clear indication, that these data types are in violation to the XML-RPC specification.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
229 <p>For example, sending an integer value looks like the following: ---------------------------------------------------------------------------- <i>i4</i>347<i>/i4</i> ---------------------------------------------------------------------------- 32 bit integers are valid data types in XML-RPC. So we do not need to use a separate namespace here. 64 bit integers aren't valid XML-RPC data types. So we need to use our namespace when sending them: ---------------------------------------------------------------------------- <i>i8 xmlns=&quot;http://ws.apache.org/xmlrpc/namespaces/extensions&quot;</i>78934<i>/i8</i> ----------------------------------------------------------------------------</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
230 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
231 <div class="section"><h2>Exception Handling</h2>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
232 <p>If the server property &quot;enabledForExceptions&quot; is turned on, then the server will convert exceptions into a byte array and send them to the client within a &quot;faultCause&quot; message.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
233 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
234
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
235 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
236 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
237 <div class="clear">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
238 <hr/>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
239 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
240 <div id="footer">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
241 <div class="xright">&#169;
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
242 2001-2010
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
243
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
244 The Apache Software Foundation
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
245
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
246
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
247
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
248
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
249
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
250
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
251
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
252
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
253 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
254 <div class="clear">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
255 <hr/>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
256 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
257 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
258 </body>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
259 </html>