編程生活

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            113 隨筆 :: 0 文章 :: 18 評論 :: 0 Trackbacks

          Running Seam 2.0 on Tomcat(EJB3) using Maven and Cargo
           Created: Fri 12 Oct 2007 Posted by: wesleyhales under Java [2] Comments In this article I review a simple Seam 2.0.0.CR2 app that deploys to Tomcat 6.0.13 with JBoss Embedded Beta2.

          It's great to see Seam move to Maven because tracking and installing all those dependencies in a local repository was a pain in the ass! This project is moving fast, and if you wanted to keep up with the latest version, it was a lot of work. So now that my life is easier, I thought I would make the Seam+EJB+Tomcat user's life a little easier also.

          The following is included in this sample app:

          Trinidad 1.0.2
          JBoss RichFaces
          JAAS
          Drools
          JBPM
          And everything else that seam and Embedded/EJB3 provides out of box.
          All you need to have is Maven 2.0.x installed. The rest is cake. During the installation Cargo will download a zip file from the JBoss Maven repository. This is the Tomcat 6.0.13 distro with Embedded already installed and setup. Nothing else has been added to it.

          Directions
          Download the Seam Maven application
          Unzip and navigate to the root of the project.
          run mvn install
          *Note - This will install and download all the dependencies along with downloading the tomcat+embedded distro, so it may take a few minutes. Also, If you want to disable the automatic starting of the Tomcat server, go to the web/pom.xml and disable the <executions> node of the cargo plugin if you want to disable this feature.
          navigate to [app_root]/web/src/main/webapp/META-INF and change the context.xml to point to [app_root]/web/target/seamtestapp
          Open a new terminal and navigate to the [app_root]/web and run mvn cargo:deploy
          navigate to http://localhost:8080/seamtestapp
          Thats it! You may see an error on the deploy, Cargo just pings a page to see if it actually deployed. The error is because Trinidad doesn't understand the user agent... anyways, don't worry about it ;)
          *Note - I used a stub for the datasource in TOMCAT_HOME/lib/deploy. Don't forget that this deploy directory is supposed to be the same as JBoss AS deploy directory.

          I used a few cool things in the maven pom setup:

          It seems you can trick cargo into using the latest version of tomcat. The documentation says Tomcat5x is only supported for the container, but I didn't have any problems using 6.0.x with the Tomcat5x containerId
          The cargo.container.url can be local, there is an example in the web/pom.xml (at the bottom)...So once you have this downloaded in you target dir, I would copy it somewhere outside of target and change the cargo.container.url to point to it. It will save time from downloading and bandwidth. It would be cool to add it as a dependency and then unzip from your local maven repo, but I haven't tried it yet.
          Like I mentioned earlier, if you want to disable auto start of the Tomcat server you should disable this section of the cargo plugin in web/pom.xml                    <executions>
                                <execution>
                                  <id>start</id>
                                  <phase>install</phase>

                                  <goals>
                                    <goal>start</goal>
                                  </goals>
                                </execution>

                                <execution>
                                  <id>deploy-app</id>
                                  <phase>install</phase>
                                  <goals>

                                    <goal>deployer-deploy</goal>
                                  </goals>
                                </execution>
                            </executions>
                           
          I have another version of this sample app that uses profiles to build either an EAR for JBoss or a WAR for Tomcat+Embedded. Michael Yuan recently touched on this subject about the EAR+Seam maven impl and did a great job breaking it down. I will try to post the sample app that lets you build a war for Tomcat or an EAR for JBoss all based on the maven profile i.e... mvn install -Ptomcat or mvn install -Pjboss This is the power of Maven2 and there is soo much more you can do with it.
          btw, I haven't blogged since I've become an employee for JBoss, a division of Red Hat. I'm working on the JBoss Portal Team and I must say that the company is awesome, my team is awesome, and everyone I have met and talked to have been, you guessed it, AWESOME!

           

          posted on 2007-11-10 15:36 wilesun 閱讀(551) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 隆子县| 隆昌县| 津市市| 大田县| 济阳县| 乌审旗| 微山县| 八宿县| 阳城县| 垦利县| 中山市| 皋兰县| 太康县| 张家港市| 易门县| 巩留县| 龙州县| 正阳县| 淮南市| 保德县| 宁蒗| 北碚区| 麻城市| 方正县| 青川县| 宜春市| 阿克陶县| 兴义市| 逊克县| 紫云| 临清市| 咸阳市| 蕲春县| 曲靖市| 陈巴尔虎旗| 清徐县| 望江县| 山东省| 阿拉善盟| 万年县| 五原县|