| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 
 | <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <title>Axis: further reading</title>
<link href="axis.css" rel=stylesheet type=text/css>
</head>
<body>
<center>
<h1>
<img SRC="images/axis.jpg" height=96 width=176></h1></center>
<h1>Recommended Reading</h1>
Here are things you can read to understand and use Axis better. Remember,
you also have access to all the source if you really want to find out how
things work (or why they don't).
<a name="axis">
<h2>Axis installation, use and internals</h2>
</a>
<ol>
<li>
    <a href="http://www.pankaj-k.net/axis4tag/">
    Web Services with JAX-RPC and Apache Axis.</a><br>
    by Pankaj Kumar.
    Starting with a 10000 ft. view of Web Services, prior technologies, current and emerging
    standards, it quickly gets into the nitty-gritties of using JAX-RPC and Apache Axis
    for writing and executing programs. Has a nice coverage of different invocation styles -
    generated stubs, dynamic proxy and dynamic invocation interface. A good place to start
    if you are new to Web Services and Axis.
    <br/>
    <br/>
    The author also maintains a <a href="http://www.pankaj-k.net/webservices/index.html">
    Web Services Resource Page</a>.
</li>
<li><a href="http://www.sosnoski.com/presents/java-xml/axis/">Apache Axis SOAP for Java</a><br>
    Dennis Sosnoski covers Axis. This is another good introductory guide.
<li><a href="http://www.sosnoski.com/presents/java-xml/axis/axis-monitor.html">
    Enabling SOAPMonitor in Axis 1.0</a>.<br>
    Dennis Sosnoski on how to turn the SOAP monitor on and off, and use it to log your
    application.
<li><a href="http://macromedia.com/support/jrun/extend/using_web_services/">
Axis in JRrun</a><br>
 Macromedia authored coverage of using Axis from inside JRun.
<li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-eight/">
Ask the magic eight ball</a><br>
 Example of using an Axis service with various
caller platforms/languages.
<li>
  <a href="http://www.fawcette.com/javapro/2003_02/online/WSDL_kjones_02_27_03/">
  Configure Axis Web Services
  </a><br>
  Kevin Jones talks a bit about configuring axis, showing how to return
  handwritten WSDL from the ?wsdl query.
</li>
<li>
  <a href="http://www.fawcette.com/javapro/2003_03/online/wsdl_kjones_03_10_03/">
  Different WSDL Styles in Axis
  </a><br>
  Kevin Jones looks at the document and wrapped styles of WSDL2Java
  bindings.
</li>
<li>
    <a name="ws-sec" href="http://www.j2ee-security.net/book/sample-chap/">Web Services Security with Axis</a><br/>
    This sample chapter from <a href="http://www.j2ee-security.net/"><i>J2EE Security for Servlets,
    EJBs and Web Services</i></a> book explains use of username/password based authentication,
    SSL and Servlet security mechanisms for securing the transport and
    WS-Security for securing the messages with Apache Axis. To illustrate use of handlers for
    enforcing security, it describes the implementation of a bare-bones WS-Security mechanism
    using <a href="http://www.xmltrustcenter.org/developer/verisign/tsik/index.htm">
    VeriSign's TSIK</a> and JAX-RPC handlers. You can also
    <a href="http://www.j2ee-security.net/book/viewsource.php">view</a> or
    <a href="http://www.j2ee-security.net/book/dnldsrc/">download</a> the complete sources
    discussed in the chapter.
</li>
</ol>
<a name="specifications">
<h2>Specifications</h2>
</a>
<ol>
<li>
    <a href="http://www.w3.org/TR/SOAP/">
    SOAP Version 1.1
    </a><br>
    Remember that SOAP1.1 is not an official W3C standard.
</li>
<li>
    <a href="http://www.w3.org/TR/soap12-part0/">
    SOAP Version 1.2 Part 0: Primer
    </a><br>
    This and the follow-on sections cover what the W3C think SOAP
    is and how it should be used.
</li>
<li>
    <a href="http://www.w3.org/TR/wsdl">
    Web Services Description Language (WSDL) 1.1
    </a><br>
</li>
<li>
    <a href="http://ietf.org/rfc/rfc2616.txt">
    RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
    </a><br>
    This is HTTP. You really do need to understand the basics of how this
    works, to work out why your web service doesn't :)
</li>
<li>
    <a href="http://java.sun.com/xml/saaj/index.html">
    SOAP with Attachments API for Java (SAAJ)
    </a><br>
    SAAJ enables developers to produce and consume messages conforming to
    the SOAP 1.1 specification and SOAP with Attachments note.
</li>
<li>
    <a href="http://java.sun.com/xml/jaxrpc/index.html">
    Java API for XML-Based RPC (JAX-RPC)
    </a><br>
    The public API for Web Services in Java.
    JAX-RPC enables Java technology developers to develop SOAP based
    interoperable and portable web services. JAX-RPC provides the core API
    for developing and deploying web services on the Java platform.
</li>
<li>
    <a href="http://www.w3.org/TR/xmlschema-0/">
    XML Schema Part 0: Primer
    </a><br>
    The W3C XML Schema, (WXS) is one of the two sets of datatype SOAP
    supports, the other being the SOAP Section 5 datatypes that predate
    WXS. Complicated as it is, it is useful to have a vague understanding
    of this specification.
</li>
<li>
    <a href="http://java.sun.com/xml/jaxm/index.html">
    Java API for XML Messaging (JAXM)
    </a><br>
    JAXM enables applications to send and receive document oriented XML
    messages using a pure Java API. JAXM implements Simple Object Access
    Protocol (SOAP) 1.1 with Attachments messaging so that developers can
    focus on building, sending, receiving, and decomposing messages for
    their applications instead of programming low level XML communications
    routines.
</li>
</ol>
<a name="presentations">
<h2>Explanations, articles and presentations</h2>
</a>
<ol>
<li>
    <a href="http://www.intertwingly.net/stories/2002/03/16/aGentleIntroductionToSoap.html">
    A Gentle Introduction to SOAP
    </a><br>
    Sam Ruby tries not to scare people.
</li>
<li>
    <a href="http://www.intertwingly.net/stories/2002/02/15/aBusyDevelopersGuideToWsdl11.html">
    A Busy Developer's Guide to WSDL 1.1
    </a><br>
    Quick intro to WSDL by the eponymous Sam Ruby.
</li>
<li>
    <a href="http://www.ociweb.com/javasig/knowledgebase/2002Sep/">
    Axis - an open source web service toolkit for Java</a><br>
    by Mark Volkmann, Partner, Object Computing, Inc. A very good introduction
    to SOAP and Axis. Highly Recommended.
<li>
    <a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">
    When Web Services Go Bad
    </a><br>
    Steve Loughran tries to scare people.
    A painful demonstration how deployment and system management are
    trouble spots in a production service, followed by an espousal of a
    deployment-centric development process. Remember, it doesn't have to
    be that bad.
</li>
<li>
    <a href="http://servlet.java.sun.com/javaone/sf2002/conf/sessions/index.en.jsp">
    JavaOne 2002, Web Services Today and Tomorrow </a><br>
    (Java Developer connection login required)
</li>
<li>
    <a href="http://java.sun.com/webservices/docs/1.0/tutorial/doc/JAXRPC.html">
    The Java Web Services Tutorial: Java API for XML-based RPC </a><br>
    This is part of Sun's guide to their Java Web Services Developer Pack.
    The examples are all based on their JWSDP, but as Axis also implements
    JAX-RPC, they may all port to Axis.
</li>
<li>
    <a href="http://java.sun.com/blueprints/webservices/using/webservbp.html">
    Using Web Services Effectively.</a><br>
    Blissfully ignoring issues such as versioning, robustness and security and
    all the other details a production Web Service needs, instead pushing EJB as
    the only way to process requests, this is Sun's guide to
    using web services in Java. It also assumes Java is at both ends, so manages
    to skirt round the interop problem.
</li>
<li>
    <a href="http://www.hpl.hp.com/techreports/2002/HPL-2002-274.html">
    Making Web Services that Work</a><br>
    A practical but suspiciously code free paper on how to get web
    services into production. As well as coverage of topics such as
    interop, versioning, security, this (57 page) paper looks at the
    deployment problem, advocating a fully automated deployment process
    in which configuration problems are treated as defects for which
    automated test cases and regresssion testing are appropriate.
    Happyaxis.jsp is the canonical example of this. The author, Steve
    Loughran also looks a bit at what the component model of a federated
    web service world would really be like.
</li>
</ol>
<a name="interop">
<h2>Interoperability</h2>
</a>
<ol>
<li>
    <a href="http://www.intertwingly.net/stories/2002/02/01/toInfinityAndBeyondTheQuestForSoapInteroperability.html">
    To infinity and beyond - the quest for SOAP interoperability
    </a><br>
    Sam Ruby explains why Interop matters so much.
</li>
<li>
    <a href="http://www.iseran.com/Steve/papers/interop/">
    The Wondrous Curse of Interoperability
    </a><br>
    Steve Loughran on interop challenges (especially between .NET and Axis),
    and how to test for them.
</li>
</ol>
<a name="advanced">
<h2>Advanced topics</h2>
</a>
<ol>
<li>
    <a href="http://www.extreme.indiana.edu/xgws/papers/sc00_paper/index.html">
    Requirements for and Evaluation of RMI Protocols for Scientific Computing
    </a>
</li>
<li>
    <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">
    Architectural Styles and the Design of Network-based Software Architectures
    </a><br>
    The theoretical basis of the REST architecture
</li>
<li>
    <a href="http://www.extreme.indiana.edu/xgws/papers/soap-hpdc2002/soap-hpdc2002.pdf">
    Investigating the Limits of SOAP Performance for Scientific Computing
    </a>
</li>
<li>
    <a href="http://www.w3.org/TR/webarch/">
    Architectural Principles of the World Wide Web
    </a><br>
    The W3C architects say how things should be done.
</li>
</ol>
<a name="books">
<h2>Books</h2>
</a>
<ol>
<li><i><a href="http://www.wrox.com/books/1861007531.htm">
Beginning Java Web Services</a></i><br>
Meeraj Kunnumpurath et al, Wrox Press, September 2002.<br>
    An introductory book, with the early chapters focusing on Axis. <br>
    The <a href="http://www.wrox.com/books/sample-chapters/SampleChapter_1861007531.pdf">
    sample chapter</a> shows how to install Axis with Tomcat 4.0: we do not believe
    that their approach is the best. It is easier to drop jaxrpc.jar and
    saaj.jar into the CATALINA_HOME/common/lib dir than it is to add all
    axis jars to the classpath by hand. The book is based on Axis Beta-3.
<li>
    <a href="http://manning.com/antbook">
    <i>Java development with Ant</i>
    </a><br>
    by Erik Hatcher and Steve Loughran, Manning Press, July 2002. <br>
    A book on Ant development which covers Web Service development with Axis,
    along with other topics relevant to Java developers using Ant. The Web Service
    chapter, <A href="http://www.manning.com/hatcher/chap15.pdf">
    chapter 15</A>, is free to download, and was the birthplace of
    happyaxis.jar. <br>
    The book is based on Axis Beta-2; the web site contains updated
    documentation where appropriate.
</li>
<li>
<A href="http://www.wrox.com/books/toc/1861007159_toc.htm">
<i>AXIS: Next Generation Java SOAP</i><br>
</A>
    by Romin Irani and S Jeelani Bashna, Wrox Press, May 2002.<br>
    The first nothing-but-Axis book.<br>
    It is based on Beta-1. This is a reasonable book, despite is apparent thinness and
    relative age. If it has a major weakness it believes everything works as intended,
    which regular Axis users will know is not quite true yet. Maybe they didn't want
    to fault missing features and other gotchas, assuming they would be fixed by the time
    the product shipped, but the effective result is that you can get into minor trouble working
    from this book, trying to use bits that aren't there, or just don't work (yet).
<li>
<A
href="http://sams.com/catalog/product.asp?product_id={ABC81EE6-0D9F-4BD7-99DB-84F9C983ACF7}">
<i>
Building Web Services with Java: Making Sense of XML, SOAP, WSDL and UDDI</i>
</A><br>
    Steve Graham et al, December 2001. <br>
    Covering very early versions of Axis
    along with other aspects of Web Service technologies. One of the
    authors, Glen Daniels, is an Axis committer and active contributor, so
    the quality of the Axis coverage is high. Good explanations of SOAP, UDDI, and the like.
<li>
    <a href="http://www.j2ee-security.net">
    <i>J2EE Security for Servlets, EJBs and Web Services</i></a><br>
    Pankaj Kumar, Prentice Hall, September 2003.<br/>
    A book on using Java security APIs, tools and mechanisms for building secure
    enterprise applications. The chapter on <a href="#ws-sec">Web Services Security</a>
    uses Axis-1.1RC1
    for illustrations. Besides Web Services, it covers security aspects of Java RMI,
    Servlet and JSP based Web Applications and EJBs.
</li>
<!-- insert new books here -->
</ol>
Authors, publishers: we welcome additions to this section of any books which
have some explicit coverage of Axis. Free paper/pdf copies and other forms of bribery accepted.
<a name="external">
<h2>External Sites covering Web Services</h2>
<ol>
<li>
<a href="http://www-106.ibm.com/developerworks/webservices/">
IBM developerWorks Web Services corner</a><br>
There are lots of interesting articles on Web Services here, many of which are
Axis related. There is also a
<a href="http://www-106.ibm.com/developerworks/webservices/library/ws-spec.html">
listing of</a>
 "all current open standards and specifications that define the Web services family of protocols",
 though Soap with Attachments is mysteriously absent.
</li>
<li>
    <a href="http://msdn.microsoft.com/webservices/">MSDN Web
    Services</a><br>
    These are the microsoft pages; little Axis coverage but plenty on 
    Web Service specifications.
</li>
<li><a href="http://webservices.xml.com/">WebServices.xml.com</a>
The O'Reilly site is always up to date, interesting and useful. It
doesn't advocate a single technology (REST, SOAP, RDF...), or a single
product. As such, it retains its independence and value. 
</ol>
 |