annotate apache-xmlrpc-3.1.3/docs/faq.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 - FAQ</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 <a href="extensions.html">Vendor Extensions</a>
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 <strong>FAQ</strong>
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><a name="top">FAQ</a></h2>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
206 <ol type="1"><li><a href="#arrays">Why do I receive a ClassCastException, if the server returns an array?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
207 <li><a href="#compression_request">How do I enable request compression?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
208 <li><a href="#compression_response">How do I enable response compression?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
209 <li><a href="#timeout_callback">Is it possible to specify a timeout, after which the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
210 client stops waiting for the servers response?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
211 <li><a href="#nonstandard_date_format">I've got a server, which is expecting a non-standard
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
212 date format. How can I ensure, that my date values have the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
213 right format?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
214 <li><a href="#nonstandard_double_format">I've got a server, which is expecting a non-standard
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
215 double format. How can I ensure, that my double values have the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
216 right format?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
217 <li><a href="#java_version">I am using Java 1.4 (or Java 1.5, or later). Can I use
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
218 javax.net.ssl.SSLSocketFactory? (Or the java.net.Proxy?)</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
219 </ol>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
220 <ol type="1"><li><a href="#logging">How do I reduce the servers error logging?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
221 <li><a href="#streaming_mode">How do I enable streaming mode?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
222 <li><a href="#basic_authentication">How do I configure the server for basic authentication?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
223 <li><a href="#handler_initialization">How do I initalize the request processors?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
224 <li><a href="#client_ip">How to I get the clients IP address in a handler?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
225 <li><a href="#client_ip_webserver">How to I get the clients IP address in a handler when using the WebServer class?</a></li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
226 </ol>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
227 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
228 <dl><dt><a name="arrays">Why do I receive a ClassCastException, if the server returns an array?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
229 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
230 <p>The problem is typically caused by code like the following:</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
231 <div class="source"><pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
232 Integer[] result = server.execute(&quot;Server.foo&quot;, param);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
233 </pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
234 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
235
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
236 <p>The problem is in the fact, that the XML-RPC response tells
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
237 the client, that the server returns an array. It doesn't tell
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
238 what type the array has. In other words, the client will
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
239 always receive an object array. The workaround is to use
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
240 code like the following:</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
241 <div class="source"><pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
242 Object[] result = (Integer[])server.execute(&quot;Server.foo&quot;, param);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
243 for (int i = 0; i &lt; result.length; i++) {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
244 Integer num = (Integer) result[i];
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 </pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
248 </div>
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 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
252 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
253 <dt><a name="compression_request">How do I enable request compression?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
254 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
255 <p>That's simple: Set the properties "enabledForExtensions"
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
256 and "gzipCompressing". That said, note the following
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
257 hints:</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
258 <ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
259 <li>Setting these properties will only work, if the XML-RPC
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
260 server is aware of request compression. Compression is a
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
261 violation of the XML-RPC specification, so typically the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
262 server will refuse the request, unless it is an Apache
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
263 XML-RPC server with version 2 or later. (Apache XML-RPC 2
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
264 supports request compression, although it was officially
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
265 designed to be strictly compliant to the XML-RPC specification.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
266 However, noone was aware, that compression violates the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
267 specification. :-)</li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
268 <li>Compressing the request doesn't mean that the response
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
269 will also be compressed. You need to request response
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
270 compression to achieve that.</li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
271 <li>Additionally, be aware of the following: Compression
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
272 depends on HTTP/1.1 features. In particular, you must
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
273 not use the LiteHttpTransport.</li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
274 </ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
275 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
276 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
277 <dt><a name="compression_response">How do I enable response compression?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
278 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
279 <p>That's as simple as enabling request compression: Set the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
280 properties "enabledForExtensions" and "gzipRequesting".
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
281 That said, note the following hints:</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
282 <ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
283 <li>Requesting gzip compression is a standard HTTP feature.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
284 In other words, you may safely request compression from
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
285 any XML-RPC server, even if it doesn't run Apache XML-RPC.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
286 </li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
287 <li>However, requesting compression doesn't necessarily mean,
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
288 that the response *is* compressed. It depends on the server.</li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
289 <li>Additionally, be aware of the following: Compression
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
290 depends on HTTP/1.1 features. In particular, you must
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
291 not use the LiteHttpTransport.</li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
292 </ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
293 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
294 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
295 <dt><a name="timeout_callback">Is it possible to specify a timeout, after which the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
296 client stops waiting for the servers response?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
297 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
298 <p>Yes, use the class TimingOutCallback.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
299 <div class="source"><pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
300 // Wait for 10 seconds.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
301 TimingOutCallback callback = new TimingOutCallback(10 * 1000);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
302 XmlRpcClient client = new XmlRpcClient(url);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
303 client.executeAsync(methodName, params, callback);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
304 try {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
305 return callback.waitForResponse();
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
306 } catch (TimeoutException e) {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
307 System.out.println(&quot;No response from server.&quot;);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
308 } catch (Exception e) {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
309 System.out.println(&quot;Server returned an error message.&quot;);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
310 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
311 </pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
312 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
313
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
314 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
315 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
316 <dt><a name="nonstandard_date_format">I've got a server, which is expecting a non-standard
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
317 date format. How can I ensure, that my date values have the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
318 right format?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
319 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
320 <p>You've got to use a special type factory. An example is
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
321 contained in the documentation on
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
322 {{{advanced.html}advanced topics}}.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
323 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
324 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
325 <dt><a name="nonstandard_double_format">I've got a server, which is expecting a non-standard
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
326 double format. How can I ensure, that my double values have the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
327 right format?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
328 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
329 <p>You've got to use a special type factory. An example is
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
330 contained in the documentation on
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
331 {{{advanced.html}advanced topics}}.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
332 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
333 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
334 <dt><a name="java_version">I am using Java 1.4 (or Java 1.5, or later). Can I use
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
335 javax.net.ssl.SSLSocketFactory? (Or the java.net.Proxy?)</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
336 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
337 <p>Yes, you can. Use the org.apache.xmlrpc.client.XmlRpcSun14HttpTransportFactory.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
338 (Or the org.apache.xmlrpc.client.XmlRpcSun15HttpTransportFactory.)</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
339 <p>The XmlRpcClient will detect the Java version you are using and
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
340 automatically create the respective factory. In other words, all you
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
341 need to do is cast the XmlRpcTransportFactory to the proper class.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
342 For example:</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
343 <div class="source"><pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
344 XmlRpcClient myClient;
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
345 XmlRpcTransportFactory factory = myClient.getTransportFactory();
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
346 ((XmlRpcSun15HttpTransportFactory) factory).setProxy(String pHost, int pPort);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
347 </pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
348 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
349
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
350 <p>With the Lite HTTP transport factory, things are slightly different:
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
351 You have to explicitly create an instance of XmlRpcLite14HttpTransportFactory.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
352 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table></dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
353 </dl>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
354 <dl><dt><a name="logging">How do I reduce the servers error logging?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
355 <dd>Create a subclass of XmlRpcErrorLogger and set it on the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
356 XmlRpcStreamServer.<table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
357 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
358 <dt><a name="streaming_mode">How do I enable streaming mode?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
359 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
360 <p>Set the property "enabledForExtensions". Note, that enabling
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
361 the streaming mode doesn't mean, that all responses are served
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
362 in streaming mode. It depends on the clients:</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
363 <ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
364 <li>If a client sends a content-length header, then the server
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
365 assumes, that the client is a traditional XML-RPC application
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
366 and doesn't support the vendor extensions from Apache XML-RPC.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
367 Consequently, the server assumes, that it needs to set the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
368 content-length header itself and disables the streaming mode
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
369 for that particular request.</li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
370 <li>However, if the client doesn't send a content-length header,
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
371 then the server assumes that it will be able to accept any
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
372 standard HTTP/1.1 request and enable the streaming mode.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
373 Streaming mode means, in particular, that the response will
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
374 not contain a content-length header.</li>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
375 </ul>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
376 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
377 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
378 <dt><a name="basic_authentication">How do I configure the server for basic authentication?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
379 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
380 <p>Basically you've got to provide an AuthenticationHandler.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
381 See the {{{server.html}server documentation}} for an example.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
382 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
383 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
384 <dt><a name="handler_initialization">How do I initalize the request processors?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
385 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
386 <p>The PropertyHandlerMapping assumes, that request processors are
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
387 POJO's (plain old java objects). However, this is not always
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
388 desirable. For example, sometimes it is assumed that handlers
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
389 need to be initialized by the servlet, which is configured through
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
390 parameters.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
391 <p>The recommended solution is to configure your server with a
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
392 special request processor factory.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
393 <div class="source"><pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
394 public interface InitializableRequestProcessor {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
395 void init(HttpServlet pServlet) throws XmlRpcException;
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
396 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
397
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
398 public class MyXmlRpcServlet extends XmlRpcServlet {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
399 protected PropertyHandlerMapping newPropertyHandlerMapping(URL url) throws IOException, XmlRpcException {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
400 PropertyHandlerMapping mapping = new PropertyHandlerMapping();
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
401 RequestProcessorFactoryFactory factory = new RequestSpecificProcessorFactoryFactory(){
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
402 protected Object newRequestProcessor(Class pClass, XmlRpcRequest pRequest) {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
403 InitializableRequestProcessor proc = super.newRequestProcessor(pClass, pRequest);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
404 proc.init(MyXmlRpcServlet.this);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
405 return proc;
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
406 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
407 };
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
408 mapping.setRequestProcessorFactoryFactory(mapping);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
409 mapping.load(Thread.currentThread().getContextClassLoader(), url);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
410 return mapping;
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
411 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
412
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
413 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
414 </pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
415 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
416
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
417 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
418 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
419 <dt><a name="client_ip">How to I get the clients IP address in a handler?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
420 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
421 <p>That's a similar question than the question on initializing handlers.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
422 The main difference is, that in this case you want to initialize the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
423 handler with any request. In other words, you might achieve the goal
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
424 by creating a RequestProcessorFactoryFactory, that provides the
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
425 necessary details. However, there is an easier solution, which we
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
426 will demonstrate here: Use a ThreadLocal.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
427 <p>The class ThreadLocal allows to create information at some point
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
428 in the source code and use this information at one or more completely
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
429 different and decoupled places. The only assumption is, that you
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
430 are in the same thread. This is exactly our situation: We create
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
431 the information when processing of the XML-RPC request starts
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
432 and read it within the handler.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
433 <p>In the example below, you'd obtain the clients IP address by
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
434 writing <code>ClientInfoServlet.getClientIpAddress()</code>.</p>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
435 <div class="source"><pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
436 public static class ClientInfoServlet extends XmlRpcServlet {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
437 private static ThreadLocal clientIpAddress = new ThreadLocal();
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
438
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
439 public static String getClientIpAddress() {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
440 return (String) clientIpAddress.get();
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
441 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
442
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
443 public void doPost(HttpServletRequest pRequest, HttpServletResponse pResponse)
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
444 throws IOException, ServletException {
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
445 clientIpAddress.set(pRequest.getRemoteAddr());
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
446 super.doPost(pRequest, pResponse);
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
447 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
448 }
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
449 </pre>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
450 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
451
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
452 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table><hr />
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
453 </dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
454 <dt><a name="client_ip_webserver">How to I get the clients IP address in a handler when using the WebServer class?</a></dt>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
455 <dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
456 Use the ServletWebServer class and see the answer to the previous question.
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
457 <table border="0"><tr><td align="right"><a href="#top">[top]</a></td></tr></table></dd>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
458 </dl>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
459
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
460 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
461 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
462 <div class="clear">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
463 <hr/>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
464 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
465 <div id="footer">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
466 <div class="xright">&#169;
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
467 2001-2010
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
468
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
469 The Apache Software Foundation
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
470
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
471
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
472
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
473
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
474
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
475
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
476
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
477
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
478 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
479 <div class="clear">
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
480 <hr/>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
481 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
482 </div>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
483 </body>
db5f735fd2b4 add xml-rpc.jar
e085711
parents:
diff changeset
484 </html>