Child pages
  • Servlet Deployment Setup
Skip to end of metadata
Go to start of metadata

Bug Warning

There is a bug in Tomcat, WO or Project Wonder that causes problems if you have more than one webapp deployed in a single instance of Tomcat if they don't all have identical classpaths. This bug will not impact most developers. If you are deploying a single application, or all your applications share the same classpath, then you will not run into this bug.

Introduction

WO developers have been able to deploy their applications as a WAR bundle in a J2EE container since WO 5.1, and as an independent SSDD (Servlet Single Directory Deployment) bundles and WAR files since WO 5.2. This article guides you through the simple setup in WOLips to allow you to deploy you application to a servlet container such as Apache Tomcat.

Prerequisites

  1. Eclipse 3.4 & WOLips 5640 or later installed.
  2. Servlet Container of your choice installed. For this article I'll be setting it up using a completely stock install of Tomcat 6.0.18.
  3. An existing WebObjects project.

Step 1 - Project Properties

  1. Right-Click on your project in the WO Explorer tab of the WOLips perspective in Eclipse and select "Properties" or select "Properties" from the "Project" menu.
  2. Select "WOLips Deployment" from the left-hand side and check the "Servlet Deployment" checkbox and the "Autogenerate web.xml" checkbox.

Step 2 - Install

  1. Right-Click on your project and select "WOLips Ant Tools" and then "Instal"
  2. Look in the Finder at your /Library/WebObjects/Application/ directory and you should find 3 files for your project
    ## YourApp.woa
    1. YourApp directory - this is a Single Servlet Directory Deployment (SSDD) it contains all of the Frameworks on the build path embedded in it.
    2. YourApp.war - this is your webapp archive. It contains all the same files as the SSDD, but zipped up.

Step 3 - Deploy

Copy the MyApp.war file to your servlet container's webapps directory.

Notes about JBoss

I wouldn't consider myself a WAR expert, but I do deploy my WebObjects application using JBoss and it works very well.

Have you tried a "Hello World" type example application? If you can get a simple application running under JBoss then you should be okay with a more complicated one. I suggest starting with "Hello World" and then adding a simple EOF and that should cover everything.

There were a few tricky configurations in the initial setup. To be clear, I am using XCode, but it probably doesn't matter. Here are a few things to check.

Check you jboss-web.xml file. You definitely need to configure this file properly if you are using EOF. The application will never get started properly without this file configured correctly.

Make sure your deployment license gets built into the WAR file for deployment by setting the SERVLET_DEPLOY_LICENSE item.

Make sure the servlet project settings are correct:

  • SERVLET_SINGLE_DIR_DEPLOY = NO
  • SERVLET_TRUE_WAR = YES
  • SERVLET_WEBAPPS_DIR = /Library/JBoss/3.2/deploy

Also, I explicitly defined a package for all of my classes. This prevents JBoss from complaining upon startup, however, JBoss still ran the application just fine anyway.

  • No labels

2 Comments

  1. On step 2

    from eclipse/wolips i have:

    Buildfile: /Users/esuser/Documents/workspace571/JBossHelloWorld/build.xml
    init.properties:
    init.install:
    compile:

    BUILD FAILED
    /Users/esuser/Documents/workspace571/JBossHelloWorld/build.xml:206: The framework name 'ERExtensions' does not exist.

    Total time: 1 second

    from console i have:

    vm-mlion-01:workspace571 esuser$ cd JBossHelloWorld/
    vm-mlion-01:JBossHelloWorld esuser$ ant install
    Buildfile: /Users/esuser/Documents/workspace571/JBossHelloWorld/build.xml

    init.properties:

    init.install:

    compile:

    BUILD FAILED
    /Users/esuser/Documents/workspace571/JBossHelloWorld/build.xml:203: taskdef class org.objectstyle.woproject.ant.WOCompile cannot be found
     using the classloader AntClassLoader[]

    how can i fix this?

  2. On HelloWorld.woa and Step 3

    Would it be possible to add a few more details for the last step of deployment? E.g. using the HelloWorld.woa example? I have a fresh install of WO/WOLips and Tomcat 7, but the HelloWorld app does not start up. Did you actually try this with a fresh install of WOLips? The error messages are related to the Servlet class included in the WO's javaxml.jar. So it feels like some options are needed for compilation, or some trick afterwards. It does not feel like a Tomcat config problem. According to some posts I read this was supposedly fixed in 2009, but maybe the problem is back?

    This is a great tutorial, I appreciate it a lot. The problem is that it does not seem to go all the way to deployment with a fresh clean install.

    Thanks, Rudy

    Error Message:

    INFO: validateJarFile(/var/lib/tomcat7/webapps/HelloWorld/WEB-INF/lib/javaxml.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class