User: cgjung Date: 02/02/18 01:12:59 Modified: src/docs/common jboss-net.jsp Log: updated jboss.net doco (finally!) Revision Changes Path 1.3 +185 -117 newsite/src/docs/common/jboss-net.jsp Index: jboss-net.jsp =================================================================== RCS file: /cvsroot/jboss/newsite/src/docs/common/jboss-net.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- jboss-net.jsp 12 Oct 2001 23:01:28 -0000 1.2 +++ jboss-net.jsp 18 Feb 2002 09:12:58 -0000 1.3 @@ -1,59 +1,132 @@ -<p class="head">Integrating Web Services with J2EE(TM) +<p class="head">Integrating Web Services with J2EE -<p class="text"><img SRC="pictures/jboss-net.png" align=LEFT> +<p class="text"> -<p class="text"> <b>Web Services</b>, such as defined by the upcoming Microsoft .NET(TM) platform, -provide a backbone for globally networked applications through XML-based interoperability -protocols, such as SOAP(TM) and ebXML(TM). +<img SRC="pictures/jboss-net.png" align=LEFT> -<p class="text"> JBoss.net is a plugin to JBoss that should facilitate the implementation -and publication of such Web Services based on the mature J2EE(TM) platform. JBoss.net also -envisages the seamless integration of external Web Services into Java-based business logic. - -<p class="text"> In a first phase, JBoss.net is adapting the Apache Axis -package (http://xml.apache.org/axis, current release 1.0 alpha2, see thirdParty/apache/axis) -that is a successor to Apache-SOAP to optimally fit into the JBoss environment. -Further phases will address issues like specialised typemappings, .NET interoperability, -and keeping track with the XML-related JSRīs. +<small> +<a href="http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000442"> +From the Microsoft Developer Network (MSDN): +</a> +</small> + +<cite> +A <b>Web Service</b> is a unit of application logic providing data and services to +other applications. Applications access Web Services via ubiquitous Web protocols and data +formats such as HTTP, XML, and SOAP, with no need to worry about how each Web Service +is implemented. Web Services combine the best aspects of component-based development +and the Web ... +</cite> + +<p class="text"> As emphasised in the <a href="http://www.sun.com/sunone">Sun Open Network Environment</a> vision, +Web Services and the <a href="http://j2ee.sun.com">J2EE</a> platform are an ideal match. J2EE is a mature and +productive environment for developing and deploying application logic. Web Services +provide a new degree of cross-platform interoperability especially +wrt the (surely upcoming) <a href="http://www.microsoft.com/net/">Microsoft .NET</a> cosmos +that <a href="http://www.omg.org/corba">CORBA and IIOP</a> are not able to provide. + +<p class="text"> +<em><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jboss/contrib/jboss.net/">JBoss.net</a></em> +is a plugin to the <a href="http://www.jboss.org">JBoss</a> application server +that should facilitate both +<ul> +<li> +the painless implementation and publication of J2EE-based Web Services and +</li> +<li> +the seamless integration of external Web Services running on other business platforms +into the J2EE environment. +</li> +</ul> +while keeping track with respective standardisation efforts in the Java Community, +the W3C consortium, and the Microsoft development department. It is - for the time being - <br>NOT</br> an attempt +to build a platform-independent .NET implementation! For that purpose, please have a look at +the commercial <a href="http://halcyonsoft.com/products/iNET.asp">Halycon iNet (Beta)</a> +or the <a href="http://www.go-mono.com/">Mono</a> Open Source project. -<p class="head">Release plan and features +<p class="head">Features and release plan -<p class="text"> JBoss.net is currently a pre-alpha and prototypes some basic concepts -of Web Service integration: +<p class="text"> +<img SRC="pictures/axis.jpg" align=right> -<ul> +In a first phase, JBoss.net is adapting the <a href="http://xml.apache.org/axis">Apache Axis</a> +distribution (current release is alpha 2, installed under +<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jboss/thirdparty/apache/axis/">thirdParty/apache/axis</a>). +Axis is a clean-room successor to the <a href="http://xml.apache.org/soap/">Apache-SOAP 2.0</a> effort +and comes with a well-configurable processing architecture that is quite +similar to the JBoss container concept. + +We aim to fit the Axis code optimally into the JBoss hot-deploying environment such that +MBeans and EJBīs can be straightforwardly exposed as Web Services. This early stage is also to +collect further requirements for the JBoss.net plugin. + +<p class="text"> Further phases of the project will then address advanced issues +like security, specialised typemappings, .NET interoperability, and keeping track +with the XML-related JSRīs. + +<p class="text"> JBoss.net is currently an alpha version and prototypes some basic concepts +of J2EE-based Web Service integration: -<li class="text"> AxisService installs the basic invocation engine and the transport servlet -in an associated WebContainer (Jetty or Tomcat).</li> +<ul> -<li class="text"> Instead of requiring Web Service code to be located in a -global directory, AxisService is a (hot-)deployer for so-called Web Service -aRchive (.wsr) files. .wsrīs are .jar files that contain an extended -Axis deployment descriptor in the "META-INF\web-services.xml".</li> - -<li class="text"> JBoss.net comes with the ability to -easily expose arbitrary MBeans as Web Services via a dedicated MBeanProvider. A pre-installed -JMXConnector publishes JBossī default MBeanServer API. Some of the java types, such as javax.management.ObjectName, already have -a reasonable typemapping installed for that purpose. </li> - -<li class="text"> A specialised EJBProvider allows to interface/map session beans immediately -to Web Service invocations. For that purpose, .wsr files can be deployed as -java-client applications in .ear files. "<ejb-ref\>" entries in the -Web Service descriptor link the naming environments of Web Service and -EJB code similar to the way that Web Applications/servlets are linked -to EJBīs in the Virtual Machine.</li> +<li class="text"> +The <code>org.jboss.net.axis.server.AxisService</code> +MBean installs the basic Axis invocation engine and an adapted transport servlet in the associated +WebContainer (tested with <a ref="jboss-jetty.jsp">Jetty</a>, afterwards also <a ref="jboss-tomcat.jsp">Tomcat</a>). +A configurable <code>org.jboss.net.axis.AxisInvocationHandler</code> eases the construction of detached +(dynamic) client proxies that transparently access remote Web Services, such as published by +the AxisService. +</li> + +<li class="text"> +The AxisService MBean functions as a (hot-)deployer for so-called <em>Web Service aRchive</em> (WSR- or .wsr-) files. +These are ordinary .jar files that contain, besides necessary byte code for plugging into the Axis machinery, a +slightly extended <a ref="http://cvs.apache.org/viewcvs.cgi/~checkout~/xml-axis/java/docs/user-guide.html">Axis deployment descriptor</a> +in their "META-INF/web-service.xml" entry. +</li> + +<li class="text"> +JBoss.net contains a dedicated <code>org.jboss.net.jmx.server.MBeanProvider</code> +handler that maps Web Service invocations directly to dedicated MBeans on the JMX bus. Similar to +the JMX way of invocation, any Web Method starts with a String-Array describing the signature of +the target Java method followed by the proper arguments. The corresponding +<code>org.jboss.net.jmx.MBeanInvocationHandler</code> is also provided. Planned, but yet +not implemented, is an automatic WSDL (Web Service Description Language) emmission for all +types of MBeans based on the meta-model of JMX. +</li> + +<li class="text"> +An example for an MBean-based Web Service is the pre-installed <code>org.jboss.net.jmx.adaptor.server.Adapter</code> +which exposes the full MBeanServer functionality as a Web Service (for client-side acccess you can use, e.g., the +<code>org.jboss.net.jmx.adaptor.RemoteAdaptor</code> interface and the <code>org.jboss.net.jmx.adaptor.RemoteAdaptorInvocationHandler</code> +factory). Some of the relevant java types, such as javax.management.ObjectName, already have +a reasonable typemapping installed for that purpose. +</li> + +<li class="text"> +A specialised <code>org.jboss.net.axis.server.EJBProvider</code> allows to interface/map +Web Service invocations immediately to session beans. For that purpose, .wsr files can +be deployed as "client applications" within .ear files (<java/> modules). We allow +"<ejb-ref\>" entries in the Axis deployment descriptor to link the +naming environments of the Web Service to the corresponding EJBīs. This is quite similar +to the way that Web Applications/servlets in .war files are linked to EJBīs +in the Virtual Machine (see the Web Container Howto for that purpose). +Support for session-based entity bean access and suitable security models is envisaged. +</li> </ul> -JBoss.net is strongly connected to Jboss 3.0 (Rabbit Hole) features and hence, -we try to synchronize with the release plan of RH. We are seeking any available help -for testing the existing code, constructing a detailed requirement list, and -implementing the features! +JBoss.net is strongly connected to features of Jboss 3.0 (Rabbit Hole) and hence, +we try to synchronize with its release plan. We are seeking any available help +for testing the existing code, constructing a detailed requirement list, and +implementing features! See the <a ref="http://sourceforge.net/pm/task.php?group_project_id=13975&group_id=22866&func=browse">Todo&Assignment List</a> +and make your development skills immortal! <p class="head">How to build, install and use Jboss.net <p class="text"> Before you go on writing your first Web Service in Java, we recommend -that you have a look at the code and meta-data samples at http://xml.apache.org/axis/. +that you have a look at code and meta-data samples at +<link href="http://xml.apache.org/axis/">the axis site</a>. <p class="text"> <em>To build</em>, you can run either @@ -91,91 +164,87 @@ </pre> </code> -<p class="text"> <em> To install </em>: JBoss.net relies requires a WebContainer installation (Tomcat, Jetty; JBoss.net has currently -been tested under Jetty) to realize the http transport facility. The necessary runtime -libraries (including the jbossdotnet.sar service archive) and the configuration files for -a JBoss-Jetty distribution are installed as a part of the above BUILD step. - -<p class="text">If you would like to enable the AutoDeployer functionality for WSR-files, you have to add a reference -JBoss.netīs Axis service - - - <mbean code="org.jboss.deployment.AutoDeployer" name="JBOSS-SYSTEM:service=AutoDeployer"> - <attribute name="Deployers"> - JBOSS-SYSTEM:service=ServiceDeployer; - JCA:service=RARDeployer; - J2EE:service=J2eeDeployer; - JBOSS-SYSTEM:service=Axis - </attribute> - ... - </mbean> - +<p class="text"> <em> To install </em>: JBoss.net relies requires a WebContainer +installation (Tomcat, Jetty; JBoss.net has currently been tested under Jetty) to realize +the http transport facility. The necessary runtime libraries (lib/ext/axis.jar, deploy/lib/jboss-net.sar and +client/jboss-net-client.jar) and configuration files (conf/default/axis-config.xml and client/client-config.xml) +are installed as a part of the above BUILD step. -in conf/default/jboss-service.xml +<p class="text">Since January 2002, the AxisService is able to register itself as a .wsr deployer at the +org.jboss.system.MainDeployer, hence simply putting a .wsr file (or a .wsr file embedded into some other +hierarchically structured deployment package, such as an .ear) into your deploy directory is enough. +If you would like to configure JBoss.net with a different WebContainer, please replace the dependency and +WarDeployer references in deploy/lib/jboss-net.sar!META_INF/jboss-service.xml (the way that +code and deployment descriptors are bundled will change in RH!) by your favorite servlet-runner: + +<pre> -<p class="text">If you would like to configure JBoss.net with a different WebContainer, please replace the -dependency and WarDeployer references in JBoss.netīs META_INF/jboss-service.xml by your -favorite servlet-runner: - -<server> - - <depends>JBOSS-SYSTEM:service=Jetty</depends> - - <mbean code="org.jboss.net.axis.server.AxisService" - name="JBOSS-SYSTEM:service=Axis"> - <attribute name="WarDeployerName">JBOSS-SYSTEM:service=Jetty</attribute> - </mbean> - -</server> - -<p class="text">If you would like to enable the AxisService to deploy -the java-client modules your .ear files, please add the following line to the configuration of -your J2eeDeployer in the j2eedeployment-service.xml. - - <!-- Make sure you change EmbeddedTomcat to Jetty if you are using Jetty --> - <mbean code="org.jboss.deployment.J2eeDeployer" - name="J2EE:service=J2eeDeployer"> - <attribute name="DeployerName">Default</attribute> - <attribute name="JarDeployerName">:service=ContainerFactory</attribute> - <attribute name="WarDeployerName">JBOSS-SYSTEM:service=Jetty</attribute> - <attribute name="JavaDeployerName">JBOSS-SYSTEM:service=Axis</attribute> - </mbean> - -<p class="text"><em>To test</em>: The successfull installation of JBoss.net will be reported during the JBoss boot process (Jetty should -acknowledge the deployment of the _axis_\${RootContext} web application including the main AxisServlet, where -${RootContext} is the URL infix that defaults to "axis" and under which the -deployed Web-Services can be reached). - -<p class="text">After that, pointing your browser to http://${machine}:8080/axis/servlet/AxisServlet should return the -default hello response page of the servlet. Under deploy/addr.wsr, the build will also have packaged -one standard sample of Axis, the AddressBook example, as a WSR-file. The modified -auto-deployer (see above) should contact the Axis service and tear up the AddressBook -Web-Service, automatically. +<server> -<p class="text">You can now run the standard client application against it + <mbean code="org.jboss.net.axis.server.AxisService" + name="jboss.net:service=Axis"> + <depends>jboss.web:service=Jetty</depends> + <attribute name="WarDeployerName">jboss.web:service=Jetty</attribute> + <attribute name="RootContext">axis/</attribute> + <attribute name="SecurityDomain">java:/jaas/other</attribute> + </mbean> + +</server> +</pre> + +<p class="text"><em>To test</em>: The successfull installation of JBoss.net will be reported +during the JBoss boot process (The WebContainer should acknowledge the deployment of +the _axis_\<RootContext/> web application including the main AxisServlet, where +<RootContext/> is the configurable URL infix that defaults to axis/ and under which the +deployed Web-Services can be reached, see above). + +<p class="text">After that, pointing your browser to <a href="http://localhost:8080/axis/servlet/AxisServlet">http://localhost:8080/axis/servlet/AxisServlet</a> +(or an equivalent address depending on the configuration of your WebContainer and the RootContext) +should return the default "hello" response page of the AxisServlet. + +<p class="text">A <a href="http://localhost:8080/axis/services?list">http://localhost:8080/axis/services?list</a> +request should return an xml document describing the current configuration of the AxisEngine including the +deployed services. The services section should look like: <pre> -<code> -cd thirdParty/apache/axis -java -classpath ./;lib/axis.jar;../log4j/lib/log4j.jar;../../sun/jaxp/lib/crimson.jar sample.addr.Main -</code> + <services> + <service pivot="JMXHandler" name="RemoteAdaptor"> + <option name="ObjectName" value="Web:service=Adaptor" /> + </service> + </services> </pre> -<p class="text">Shipped with the default configuration comes a pre-installed "JMXConnector" WebService that exports -JMX server management to arbitrary SOAP-clients (currently, the datatype mappings are still a bit -restricted). The testAxis.bat will try to run three different types of clients (general invocation, -mbean-specific invocation, typed invocation) agains the server and each should return the default -domain of the JBoss mbean server ("JBOSS-SYSTEM") and the successful deployment of the AxisService MBean -("true"). +<p class="text">This is the already mentioned end-point of the RemoteAdaptor web service that +is mapped to a dedicated MBean. Indeed, if you have a look at your <a ref="http://localhost:8082/">current JMX state</a> there +should be the corresponding service up and running, ready to take your Web Invocations through +the JMX bus. + +<p class="text">In the <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jboss/contrib/jboss.net/testsuite/">JBoss.net testsuite</a>, +we have assembled some samples and tests that can serve as an inspiration and source of insight. +You can build/run the testsuite as follows + +<code> +<pre> +cd build +build -Dmodules=plugins/jboss.net/testsuite tests +</pre> +</code> -<p class="text">In the testsuite directory, we have also provided some EJB-based web service, hello.ear. In short, we will explain -the structure of such a file. +<p class="text">In the output directory, there will be some deployable Web Services +(output/lib/addr.wsr is the JBoss-compatible package containing the Axis Address example, output/lib/hello.ear +is a J2EE application consisting of the hello ejb module from the JBoss main testsuite and +an additional web service layer on top of the HelloBean). In output/bin we also have put +some (non-functional, arrgh) batch files to run the individual tests. As soon as the testsuite +runs through - I still have some configuration problems - there will be more on that topic. <p class="head">DISTRIBUTION AND CVS <p class="text">JBoss.net is not yet shipped -<p class="text">It is only available as source under the CVS module <a class="link" href="/developers/cvs.jsp">contrib/jboss.net</a> +<p class="text">It is only available as source under the CVS module <a href="/developers/cvs.jsp">contrib/jboss.net</a> + +<p class="text">The TODO and BUG list can be found under <a ref="http://sourceforge.net/pm/task.php?group_project_id=13975&group_id=22866&func=browse"> +Sourceforge</a>. <p class="head">PROBLEMS @@ -187,9 +256,8 @@ <p class="text">Enjoy. -<p class="text">"Dr. Schorsch" ([EMAIL PROTECTED]) - 29/09/2001 - -</body> +<p class="text">"Dr. Schorsch" (<a ref="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>) - 29/09/2001, Last update on 18/02/2002 -</html> +<p class="text"><small>All mentioned trademarks on this page are +copyright of their respective owners ... or so ... </small></p>
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development