On Tue, May 13, 2008 at 2:25 AM, Jean-Sebastien Delfino < [EMAIL PROTECTED]> wrote:
> ant elder wrote: > > > On Sun, May 11, 2008 at 7:34 PM, Jean-Sebastien Delfino < > > [EMAIL PROTECTED]> wrote: > > > > ant elder wrote: > > > > > > I've been trying to use the new distributed domain stuff - > > > > domain-manager > > > > and node2* etc - to get Tomcat as a domain manager with SCA webapps > > > > being > > > > individual nodes, but not really making much progress getting it to > > > > work > > > > so > > > > asking here to see if there are any suggestions - mainly from you > > > > Sebastien > > > > as you've written most of those new modules :-) > > > > > > > > I'm going to send steps to show how to run an SCA node as a web app > > > in a > > > different email. > > > > > > > Here's a scenario and detailed steps showing how to deploy and run the > tutorial's catalog-webapp on Tomcat and integrate it with the other tutorial > modules running on other nodes in the same SCA domain. > > Note: I had to fix PackageTypeDescriberImpl as its support for WARs was > broken by a recent patch in SVN r641645 so these steps should work with the > 1.2 release and trunk but won't work with r641645 <= SVN < r655704. > > First build a Tuscany distribution or just have Maven place all the > required Tuscany dependency JARs in a directory as follows: > cd tutorial/domain > mvn dependency:copy-dependencies > That will copy the required JARs to tutorial/domain/target/dependency. > > Start the domain manager app as follows: > java -jar > <Tuscany distribution root or location of the JARs> > /tuscany-node2-launcher-2.0-incubating-SNAPSHOT.jar domain > > Browse http://localhost:9990/ui/workspace/ > You should see the tutorial contributions already deployed to the tutorial > SCA domain. > > Browse http://localhost:9990/ui/cloud/ to see the SCA nodes declared in > the tutorial. > > Check CurrencyNode and CatalogsNode > Press Start, the two nodes should appear as started (clicking the started > link shows their log). > > cd tutorial/store-eu > Edit store-eu.composite and change: > <reference name="fruitsCatalog" target="FruitsCatalogWebService"> > to > <reference name="fruitsCatalog" target="WebFruitsCatalog"> > to make it use the catalog packaged in catalog-webapp. > > mvn clean install to rebuild store-eu > > Browse http://localhost:9990/ui/cloud/ > Check StoreEUNode, press Start to start the store application. > > Copy tutorial/catalog-webapp/target/tutorial-catalog-webapp.war to > CatalogWebAppNode.war in some folder. > > If you open CatalogWebAppNode.war you'll see that it only contains a > minimum of Tuscany runtime JARs (basically just the API JARs needed to > compile application code like JSPs for example) and a Tuscany launcher JAR, > responsible for launching the SCA node inside the Webapp. > > CatalogWebAppNode is the name of the SCA node allocated to the > catalog-webapp composite. Having the Web context named CatalogWebAppNode > tells the launcher that it's dealing with CatalogWebAppNode. It also makes > it easy to find, manage, start/stop these Tomcat nodes using the Tomcat > manager app. > > You can also deploy the same composite Webapp to multiple nodes this way, > you just need to name use the proper Web context name when you're deploying > the Webapp to the Web container. > > Note that other application servers like WebSphere or Geronimo (IIRC) > allow you to set the Web context name without renaming the WAR. It may be > possible to do the same with Tomcat too using a Tomcat deployment > descriptor, I'm not sure but anyway I think that there's more power in being > portable and Web server independent here, as an SCA domain can include many > servers of different types. > > Configure environment variable TUSCANY_HOME=<location of the JARs used > earlier> or <root of Tuscany distribution install>. This will tell the > launcher where to find these JARs, as an alternative to shared libraries > that are not supported by all servers. > > Start Tomcat > Deploy CatalogWebAppNode.war to Tomcat, it should start right away. > > Browse http://localhost:8080/CatalogWebAppNode/ > You should see a catalog of fruits. > > Browse http://localhost:8104/ui/store-eu.html > You should see the store catalog, listing some fruits and vegetables. > > Assuming that everything worked to this point, you've basically run 4 SCA > nodes, 3 running as J2SE standalone nodes and one running as a webapp on > Tomcat. > > Here are the details: > - The store widget component runs in your Web browser; > - The widget talks to the store components running on a 1st standalone SCA > node; > - The store components use two catalogs, a vegetables catalog running on a > 2nd standalone SCA node and a fruits catalog running on a 3rd SCA node, > configured as a Webapp on Tomcat; > - Both catalogs use the same currency converter service running on a > fourth standalong SCA node. > > In addition to Webapp deployment this scenario also showed the ability to > start nodes in any order - you can try different sequences :) - and update > and rewire a composite already deployed to the domain (store-eu was updated > and rebuilt then changes were picked up without having to redeploy it). > > The same steps work with Geronimo and WebSphere. On WebSphere you just > need to configure a shared library pointing to the Tuscany JARs and > dependencies. > > Hope this helps. > > P.S. I'll try to send a variation of these steps later that show how you > can run SCA nodes in Webapps without exposing any of the Webapp specifics to > the application developer (basically you just work with plain contribution > JARs). I meant to do that today but was just too busy to get to it. > -- > Jean-Sebastien > Thanks for this. Though its not the same as the scenario being discussed over on the Tomcat thread so i hope you can still find the time to answer over there - http://apache.markmail.org/message/tim32bk7ijwszi2e ...ant