11 Replies Latest reply on Mar 6, 2007 2:51 PM by mlh496

    Booking example, Tomcat, EJB3 and thou...

    mlh496

      Hey everyone,

      My ongoing saga to get my app running in Tomcat continues. I did a file-by-file comparison between my config files and those in the DVD Store, and could not find any meaningful difference.

      I've read in several places that the Booking example uses EJB3 and, when using the provided ant script, will deploy on Tomcat. I've been able to do this, so I'm trying to find the difference between my app and the booking example to understand where I'm going wrong.

      I'm curious: does anyone understand what part of which config file in the Booking example is the key to getting EJB3 running in Tomcat? I'm low on Tylenol, so any help would be greatly appreciated. :-)

      -Michael

        • 1. Re: Booking example, Tomcat, EJB3 and thou...
          fernando_jmt

          I have a Seam application running in tomcat 5.1.17.

          In order to get Seam running in Tomcat the key is to deploy EJB Embedded microcontainer into Tomcat.

          If you can see in the booking example, when the application (.war) is deployed, you can have a look the mc-conf.jar (among other ejb jars), which is the key in order to have EJB applications deployed in Tomcat.

          • 2. Re: Booking example, Tomcat, EJB3 and thou...
            mlh496

            If my understanding is correct, the mc-conf.jar file consists of the files int the

            jboss-seam-1.2.0/embedded-ejb/conf
            directory. This is shared across all Seam example applications. If this is the case, then shouldn't all examples be EJB3 enabled?

            I did compare the contents of my mc-conf.jar file with the one in the Seam examples and could not see any difference. This led me to think there was something in the Booking/resources directory that was different.

            In short, what I'm after is a simple app that uses EJB3 & MySql and can be deployed on both JBoss and Tomcat. I develop using JBoss, but unfortunately have no control over my production environment which uses Tomcat. I have not problem developing with JBoss, but have yet to enable the app to run on Tomcat.

            -Michael

            • 3. Re: Booking example, Tomcat, EJB3 and thou...

              I needed to include the contents of both booking\microcontainer and booking\embedded-ejb in order to get the booking example working on Tomcat. Maybe both sets of jars and config files in those directories are needed, or maybe I'm just a n00b. :-)

              What's the error or errant behavior you're getting? As a reminder, if there's no good error message in your "stdout" log, check the "catalina" and "jakarta_service" ones as well.

              • 4. Re: Booking example, Tomcat, EJB3 and thou...
                mlh496

                I am able to get the Seam examples to run on Tomcat with no problem. Where I run into trouble is when I do this:

                1. Create a new ear application using the seam gen script
                [The application runs against MySql.]
                2. Generate the entities for the existing tables.
                3. Add a new target to the build.xml script to deploy to Tomcat.

                I create the mc-conf.jar file, modify the components.xml, etc. to match the Seam examples. However, it refuses to work on Tomcat.

                I'm missing something fundamental here and could sure use some help. Maybe I should recreate my app to generate a WAR instead of an EAR? Is anyone else having trouble porting seam-gen created apps to Tomcat? Has anyone successfully modified the Seam generated build script to deploy to Tomcat?

                -Michael

                • 5. Re: Booking example, Tomcat, EJB3 and thou...
                  gavin.king

                   

                  However, it refuses to work on Tomcat.


                  We cant help unless you show us Tomcat logs with exception stack traces.

                  • 6. Re: Booking example, Tomcat, EJB3 and thou...
                    mlh496

                    My apologies for not providing the log info.
                    Here is where the trouble begins...

                    21:13:12,687 FATAL [Ejb3Configuration] hibernate.cfg.xmlO-:-Ofalse
                    21:13:12,687 FATAL [Ejb3Configuration] import.sqlO-:-Ofalse
                    21:13:12,687 FATAL [Ejb3Configuration] messages_en.propertiesO-:-Ofalse
                    21:13:12,687 FATAL [Ejb3Configuration] META-INF/jboss-beans.xmlO-:-Ofalse
                    21:13:12,687 FATAL [Ejb3Configuration] META-INF/persistence.xmlO-:-Ofalse
                    21:13:12,687 FATAL [Ejb3Configuration] seam.propertiesO-:-Ofalse
                    21:13:12,687 FATAL [Ejb3Configuration] security.drlO-:-Ofalse
                    21:13:12,687 WARN [Ejb3Configuration] Overriding hibernate.transaction.factory_class is dangerous, this might break the EJB3 specification implementation
                    21:13:12,750 INFO [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
                    21:13:12,765 ERROR [NamingHelper] Could not obtain initial context
                    javax.naming.NamingException: Local server is not initialized
                     at org.jnp.interfaces.LocalOnlyContextFactory.getInitialContext(LocalOnlyContextFactory.java:45)
                     at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
                     at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
                    


                    -Michael

                    • 7. Re: Booking example, Tomcat, EJB3 and thou...
                      mlh496

                      As an aside, once I get this figured out I will post a deploy.tomcat ant target that should work for the war apps created using the seam command line tool.

                      -Michael

                      • 8. Re: Booking example, Tomcat, EJB3 and thou...
                        gavin.king

                        Show me the line in components.xml that installs the microcontainer.

                        • 9. Re: Booking example, Tomcat, EJB3 and thou...
                          mlh496

                          Is this the line that does it?

                          <core:ejb installed="true"/>



                          • 10. Re: Booking example, Tomcat, EJB3 and thou...
                            gavin.king

                            Right. Now are you sure that that file actually makes it into the right place in the WAR?

                            Do you see it getting found in the Seam startup log?

                            Now, where are the lines in your log that show the mc and EJB3 container starting up?

                            • 11. Re: Booking example, Tomcat, EJB3 and thou...
                              mlh496

                              The components.xml file is in the /web-inf directory in the war file. In fact, I've added a context to Tomcat pointing to an exploded directory containing my web app, so I can confirm that the components.xml file is in the right place.

                              Here is an expanded excerpt from the log file:

                              10:18:37,013 INFO [Initialization] reading /WEB-INF/components.xml
                              10:18:37,201 INFO [Initialization] reading jar:file:/C:/Apache%20Software%20Foundation/Tomcat%206.0/webapps/flow/WEB-INF/lib/jboss-seam-remoting.jar!/META-INF/components.xml
                              10:18:37,216 INFO [Initialization] reading jar:file:/C:/Apache%20Software%20Foundation/Tomcat%206.0/webapps/flow/WEB-INF/lib/jboss-seam.jar!/META-INF/components.xml
                              10:18:37,232 INFO [Initialization] reading properties from: /seam.properties
                              10:18:37,232 INFO [Initialization] reading properties from: /jndi.properties
                              10:18:37,232 INFO [Initialization] initializing Seam
                              10:18:37,232 INFO [Scanner] scanning: C:\Apache Software Foundation\Tomcat 6.0\webapps\flow\WEB-INF\classes
                              10:18:37,404 INFO [Scanner] scanning: /C:/Apache Software Foundation/Tomcat 6.0/webapps/flow/WEB-INF/lib/jboss-seam-mail.jar
                              10:18:37,451 INFO [Scanner] scanning: /C:/Apache Software Foundation/Tomcat 6.0/webapps/flow/WEB-INF/lib/jboss-seam-pdf.jar
                              10:18:37,498 INFO [Scanner] scanning: /C:/Apache Software Foundation/Tomcat 6.0/webapps/flow/WEB-INF/lib/jboss-seam-ui.jar
                              10:18:37,607 INFO [Scanner] scanning: /C:/Apache Software Foundation/Tomcat 6.0/webapps/flow/WEB-INF/lib/jboss-seam-remoting.jar
                              10:18:37,669 INFO [Scanner] scanning: /C:/Apache Software Foundation/Tomcat 6.0/webapps/flow/WEB-INF/lib/jboss-seam.jar
                              10:18:38,544 INFO [Initialization] two components with same name, higher precedence wins: org.jboss.seam.persistence.persistenceProvider
                              10:18:38,560 INFO [Initialization] two components with same name, higher precedence wins: org.jboss.seam.security.identity
                              10:18:38,623 INFO [Component] Component: org.jboss.seam.core.init, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Init
                              10:18:38,685 WARN [Initialization] Did not install PojoCache due to NoClassDefFoundError: org/jgroups/MembershipListener
                              10:18:38,685 INFO [Initialization] Installing components...
                              10:18:38,685 INFO [Component] Component: org.jboss.seam.core.facesContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesContext
                              10:18:38,701 INFO [Component] Component: org.jboss.seam.core.messages, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.Messages
                              10:18:38,701 INFO [Component] Component: org.jboss.seam.core.isUserInRole, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.IsUserInRole
                              10:18:38,701 INFO [Component] Component: org.jboss.seam.theme.theme, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.Theme
                              10:18:38,701 INFO [Component] Component: org.jboss.seam.core.pageContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PageContext
                              10:18:38,701 INFO [Component] Component: org.jboss.seam.core.validation, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Validation
                              10:18:38,701 INFO [Component] Component: org.jboss.seam.core.manager, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Manager
                              10:18:38,716 INFO [Component] Component: documentStore, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.pdf.DocumentStore
                              10:18:38,748 INFO [Component] Component: org.jboss.seam.core.locale, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Locale
                              10:18:38,748 INFO [Component] Component: org.jboss.seam.core.pages, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Pages
                              10:18:38,763 INFO [Component] Component: org.jboss.seam.servlet.exceptionFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.ExceptionFilter
                              10:18:38,779 INFO [Component] Component: org.jboss.seam.core.applicationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ApplicationContext
                              10:18:38,779 INFO [Component] Component: org.jboss.seam.core.sessionContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SessionContext
                              10:18:38,779 INFO [Component] Component: org.jboss.seam.core.validators, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Validators
                              10:18:38,779 INFO [Component] Component: org.jboss.seam.core.conversationList, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationList
                              10:18:38,779 INFO [Component] Component: org.jboss.seam.core.localeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.LocaleSelector
                              10:18:38,794 INFO [Component] Component: org.jboss.seam.persistence.persistenceProvider, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.persistence.HibernatePersistenceProvider
                              10:18:38,794 INFO [Component] Component: org.jboss.seam.theme.themeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.ThemeSelector
                              10:18:38,794 INFO [Component] Component: usersList, scope: EVENT, type: JAVA_BEAN, class: com.mlh.flow.UsersList
                              10:18:38,826 INFO [Component] Component: org.jboss.seam.ui.resource.webResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.resource.WebResource
                              10:18:38,826 INFO [Component] Component: surveyHome, scope: CONVERSATION, type: JAVA_BEAN, class: com.mlh.flow.SurveyHome
                              10:18:38,841 INFO [Component] Component: org.jboss.seam.core.persistenceContexts, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.PersistenceContexts
                              10:18:38,841 INFO [Component] Component: org.jboss.seam.framework.currentDatetime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDatetime
                              10:18:38,841 INFO [Component] Component: org.jboss.seam.core.conversationEntries, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationEntries
                              10:18:38,841 INFO [Component] Component: org.jboss.seam.core.businessProcessContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.BusinessProcessContext
                              10:18:38,841 INFO [Component] Component: org.jboss.seam.core.ejb, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Ejb
                              10:18:38,841 INFO [Component] Component: authenticator, scope: EVENT, type: JAVA_BEAN, class: com.mlh.flow.Authenticator
                              10:18:38,857 INFO [Component] Component: org.jboss.seam.security.identity, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.RuleBasedIdentity
                              10:18:38,873 INFO [Component] Component: org.jboss.seam.remoting.remoting, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.remoting.Remoting
                              10:18:38,873 INFO [Component] Component: org.jboss.seam.core.interpolator, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Interpolator
                              10:18:38,873 INFO [Component] Component: org.jboss.seam.core.expressions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Expressions
                              10:18:38,873 INFO [Component] Component: org.jboss.seam.core.renderer, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.FaceletsRenderer
                              10:18:38,888 INFO [Component] Component: org.jboss.seam.core.httpError, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.HttpError
                              10:18:38,888 INFO [Component] Component: leavesHome, scope: CONVERSATION, type: JAVA_BEAN, class: com.mlh.flow.LeavesHome
                              10:18:38,904 INFO [Component] Component: securityRules, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.drools.RuleBase
                              10:18:38,904 INFO [Component] Component: org.jboss.seam.core.events, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Events
                              10:18:38,904 INFO [Component] Component: entityManager, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.ManagedPersistenceContext
                              10:18:38,919 INFO [Component] Component: org.jboss.seam.core.safeActions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SafeActions
                              10:18:38,919 INFO [Component] Component: org.jboss.seam.core.userPrincipal, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.UserPrincipal
                              10:18:38,919 INFO [Component] Component: org.jboss.seam.framework.currentDate, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDate
                              10:18:38,919 INFO [Component] Component: org.jboss.seam.core.methodContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.MethodContext
                              10:18:38,919 INFO [Component] Component: org.jboss.seam.core.uiComponent, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.UiComponent
                              10:18:38,919 INFO [Component] Component: org.jboss.seam.security.configuration, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.Configuration
                              10:18:38,919 INFO [Component] Component: usersHome, scope: CONVERSATION, type: JAVA_BEAN, class: com.mlh.flow.UsersHome
                              10:18:38,935 INFO [Component] Component: org.jboss.seam.servlet.multipartFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.MultipartFilter
                              10:18:38,935 INFO [Component] Component: org.jboss.seam.framework.currentTime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentTime
                              10:18:38,935 INFO [Component] Component: org.jboss.seam.core.switcher, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.Switcher
                              10:18:38,935 INFO [Component] Component: org.jboss.seam.core.exceptions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Exceptions
                              10:18:38,951 INFO [Component] Component: org.jboss.seam.core.facesMessages, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesMessages
                              10:18:38,951 INFO [Component] Component: org.jboss.seam.core.redirect, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Redirect
                              10:18:38,951 INFO [Component] Component: org.jboss.seam.core.conversationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationContext
                              10:18:38,951 INFO [Component] Component: surveyList, scope: EVENT, type: JAVA_BEAN, class: com.mlh.flow.SurveyList
                              10:18:38,951 INFO [Component] Component: org.jboss.seam.servlet.redirectFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.RedirectFilter
                              10:18:38,951 INFO [Component] Component: org.jboss.seam.core.facesPage, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.FacesPage
                              10:18:38,951 INFO [Component] Component: org.jboss.seam.core.eventContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EventContext
                              10:18:38,966 INFO [Component] Component: flowEntityManagerFactory, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EntityManagerFactory
                              10:18:38,966 INFO [Component] Component: org.jboss.seam.debug.contexts, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.debug.Contexts
                              10:18:38,966 INFO [Component] Component: org.jboss.seam.debug.introspector, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.debug.Introspector
                              10:18:38,966 INFO [Component] Component: org.jboss.seam.core.resourceBundle, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ResourceBundle
                              10:18:38,982 INFO [Component] Component: leavesList, scope: EVENT, type: JAVA_BEAN, class: com.mlh.flow.LeavesList
                              10:18:38,982 INFO [Component] Component: org.jboss.seam.core.conversationStack, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationStack
                              10:18:38,982 INFO [Component] Component: org.jboss.seam.core.conversation, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Conversation
                              10:18:38,998 INFO [Lifecycle] starting up: org.jboss.seam.servlet.multipartFilter
                              10:18:39,013 INFO [Lifecycle] starting up: flowEntityManagerFactory
                              10:18:39,044 INFO [Version] Hibernate EntityManager 3.2.0.CR1
                              10:18:39,060 INFO [Version] Hibernate Annotations 3.2.0.CR1
                              10:18:39,076 INFO [Environment] Hibernate 3.2 cr2
                              10:18:39,091 INFO [Environment] hibernate.properties not found
                              10:18:39,091 INFO [Environment] Bytecode provider name : cglib
                              10:18:39,107 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
                              10:18:39,716 WARN [FileZippedJarVisitor] Unable to find file (ignored): file:/C:/Apache%20Software%20Foundation/Tomcat%206.0/webapps/flow/WEB-INF/classes
                              java.io.FileNotFoundException: C:\Apache Software Foundation\Tomcat 6.0\webapps\flow\WEB-INF\classes (Access is denied)
                               at java.util.zip.ZipFile.open(Native Method)
                               at java.util.zip.ZipFile.<init>(Unknown Source)
                               at java.util.jar.JarFile.<init>(Unknown Source)
                               at java.util.jar.JarFile.<init>(Unknown Source)
                               at org.hibernate.ejb.packaging.FileZippedJarVisitor.doProcessElements(FileZippedJarVisitor.java:34)
                               at org.hibernate.ejb.packaging.JarVisitor.getMatchingEntries(JarVisitor.java:208)
                               at org.hibernate.ejb.Ejb3Configuration.addMetadataFromVisitor(Ejb3Configuration.java:223)
                               at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:200)
                               at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:114)
                               at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:37)
                               at org.jboss.seam.core.EntityManagerFactory.startup(EntityManagerFactory.java:74)
                               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                               at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                               at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                               at java.lang.reflect.Method.invoke(Unknown Source)
                               at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
                               at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:121)
                               at org.jboss.seam.Component.callComponentMethod(Component.java:1810)
                               at org.jboss.seam.Component.callCreateMethod(Component.java:1725)
                               at org.jboss.seam.Component.newInstance(Component.java:1714)
                               at org.jboss.seam.contexts.Lifecycle.startup(Lifecycle.java:165)
                               at org.jboss.seam.contexts.Lifecycle.endInitialization(Lifecycle.java:137)
                               at org.jboss.seam.init.Initialization.init(Initialization.java:479)
                               at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:33)
                               at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
                               at org.apache.catalina.core.StandardContext.start(StandardContext.java:4336)
                               at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
                               at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
                               at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
                               at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
                               at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
                               at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
                               at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
                               at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
                               at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
                               at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)
                               at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
                               at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
                               at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
                               at org.apache.catalina.core.StandardService.start(StandardService.java:448)
                               at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
                               at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
                               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                               at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                               at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                               at java.lang.reflect.Method.invoke(Unknown Source)
                               at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
                               at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
                              10:18:39,732 WARN [Ejb3Configuration] Overriding hibernate.transaction.factory_class is dangerous, this might break the EJB3 specification implementation
                              10:18:39,904 INFO [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
                              10:18:39,935 ERROR [NamingHelper] Could not obtain initial context
                              javax.naming.NamingException: Local server is not initialized
                               at org.jnp.interfaces.LocalOnlyContextFactory.getInitialContext(LocalOnlyContextFactory.java:45)
                               at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)


                              When I first saw the "Access is denied" message, I stopped Tomcat, cleared all caches - including the unzipped war file - and restarted. The same message appeared.

                              Thank you for your patience & help,
                              -Michael