You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by to...@apache.org on 2003/03/25 16:10:05 UTC
cvs commit: ws-site/targets/axis faq.html
tomj 2003/03/25 07:10:05
Modified: targets/axis faq.html
Log:
Add two new FAQs:
- How do you set a timeout using stubs?
- How do you add a header using stubs?
Revision Changes Path
1.4 +51 -2 ws-site/targets/axis/faq.html
Index: faq.html
===================================================================
RCS file: /home/cvs/ws-site/targets/axis/faq.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- faq.html 6 Feb 2003 13:29:16 -0000 1.3
+++ faq.html 25 Mar 2003 15:10:05 -0000 1.4
@@ -64,6 +64,13 @@
<li>
<a href="#faq16">How do I associate a namespace mapping with my service?</a></li>
+
+<li>
+<a href="#faq17">How do I set a timeout when using WSDL2Java stubs?</a></li>
+
+<li>
+<a href="#faq18">How do I set a header when using WSDL2Java stubs?</a></li>
+
</ul>
<hr><a NAME="faq1"></a><i>What is Axis? What is its relationship to Apache
@@ -196,8 +203,50 @@
<br> <namespace>http://my.com/MyServiceNamespace</namespace>
<br> ...
<br></service>
-<br>
-<br> </blockquote>
+<br> </blockquote>
+<a name="faq17"></a><i>How do I set a timeout when using WSDL2Java stubs?</i>
+<blockquote>
+<p>There is a <em>setTimeout</em> method on the <tt>org.apache.axis.client.Stub</tt> class, which
+is the class all emitted stubs extend.
+<p>Here is how to set the timeout given a service named Foo:
+<pre>
+ FooServiceLocator loc = new FooServiceLocator();
+ FooService binding = loc.getFooService();
+ org.apache.axis.client.Stub s = (Stub) binding;
+ s.setTimeout(1000); // 1 second, in miliseconds
+ </pre>
+<p>The default timeout in Axis 1.1 and later is 60 seconds. Axis 1.0
+did not have a default timeout (i.e. it defaulted to 0).
+This timeout value is set on the HTTP socket and is not a connection timeout,
+which requires implementation we do not have as of Axis 1.1.
+</p>
+</blockquote>
+
+<a name="faq18"></a><i>How do I set a header when using WSDL2Java stubs?</i>
+<blockquote>
+<p>There are two styles of headers, explicit and implicit. Explicit headers are
+defined in the WSDL of the service. The WSDL2Java generation tool will recognize
+these headers in most cases and emit stub class methods that include the headers
+as arguments to the methods.
+<p>In other cases, you may want to set headers that are not explicitly called
+ out in the WSDL. For instance, you want to do some custom processing in a handler
+ or add security.
+In this case you can add headers to request before you invoke the stub method.
+<p>There are are two <em>setHeader</em> APIs on the <tt>org.apache.axis.client.Stub</tt> class.
+The first takes the namespace, name and value of the header.
+ <pre>setHeader(String namespace, String partName, Object headerValue)</pre>
+The second takes a SoapHeaderElement:
+<pre>setHeader(SOAPHeaderElement header)</pre>
+<p>Here is an example of using the first API</p>
+<pre>
+ FooServiceLocator loc = new FooServiceLocator();
+ FooService binding = loc.getFooService();
+ org.apache.axis.client.Stub s = (Stub) binding;
+ s.setHeader("http://my.name.space/headers", "mysecurityheader", "This guy is OK");
+ result = binding.myOperation(...);
+</pre>
+
+</blockquote>
</body>
</html>