<h1>Interfacing External Web Services with JBoss.net</h1>

<p> 

<img SRC="../../../../../modules/html/developers/guides/jboss.net/jboss-net.png" align=LEFT>
One of the promises of web services is to deliver the means of new types of globally 
networked applications such as the web itself has been able to provide for 
globally networked documents. Hence, it can be quite useful to to interface existing web services out there, such as 
the ones listed under <a href="http://www.xmethods.org">xmethods.org</a> and 
the well-known <a href="http://www.google.com/apis">Google WS-APIs</a>, from within 
your POJOs, MBeans or EJBeans.</p>

<p> JBoss.net provides the means to "deploy" references to external 
web services into your application servers JNDI tree from which they are accessible 
according to the JAX-RPC specification. For this purpose, you usually first obtain the WSDL description of the
target services via your browser application or a remote XML-registry. From the WSDL file,
you can then generate JAX-RPC compatible factory and stub classes using 
the <a href="http://www-124.ibm.com/developerworks/projects/wsdl4j/">WSDL4J tool</a>.</p>
 
<p> Finally, you package the compiled classes into your <a href="../../../developers/guides/jboss.net/deployment">WSR file</a> together
with a web-service.xml descriptor containing the special &quot;ext-service&quot; tag. This is 
an element that is specific to jboss.net in order to bind your given javax.xml.rpc.Service 
subclasses under the given name into JNDI.</p>

<p><cite>Here is an <a href="../../../../../modules/html/developers/guides/jboss.net/external-web-service.xml">example web service descriptor</a> that
demonstrates the deployment of remote Google and Babelfish services.</cite> You can also have a look at the <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jboss/contrib/jboss.net/testsuite/src/main/org/jboss/test/net/external/">jboss.net testsuite</a>. </p>

<p>Often, it is necessary to tunnel through your firewall with such outgoing calls.
Remember to set the -Dhttp.proxyHost -Dhttp.proxyPort -Dhttp.proxyUser and -Dhttp.proxyPassword in the
jboss startup file for that purpose. If you need https for ingoing or outgoing traffic, be sure that
you setup that transport in your web container as well as the jboss.net configuration located in
<code>jboss-net.sar/axis-config.xml</code>.</p>
 
<p>"Dr. Schorsch" (<a ref="mailto:christoph.Jung@jboss.org">christoph.jung@jboss.org</a>) - 2001/09/29, Last update on 2003/10/15</p>

<p><small>All mentioned trademarks on this page are 
copyright of their respective owners ... like that ... </small></p>

