Uploaded image for project: 'TomEE'
  1. TomEE
  2. TOMEE-3797

Misassignment webapp->host hard to detect

    XMLWordPrintableJSON

Details

    Description

      TomEE allows to deploy webapps inside an EAR file to different hosts by setting a system property. If this property points to an unknown host, the error message will be hard to understand:

      SEVERE: Application could not be deployed: /tmp/tomee/apps/hello
      org.apache.openejb.OpenEJBException: Creating application failed: /tmp/tomee/apps/hello: null
       at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1104)
       at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:759)
       at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:637)
       at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:494)
       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
       at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
       at org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:245)
       at org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:169)
       at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
       at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
       at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:137)
       at org.apache.catalina.startup.Catalina.load(Catalina.java:724)
       at org.apache.catalina.startup.Catalina.load(Catalina.java:746)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:305)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
      Caused by: java.lang.NullPointerException
       at org.apache.catalina.core.ApplicationContext.<init>(ApplicationContext.java:121)
       at org.apache.catalina.core.StandardContext.getServletContext(StandardContext.java:2334)
       at org.apache.tomee.catalina.security.TomcatSecurityConstaintsToJaccPermissionsTransformer.<init>(TomcatSecurityConstaintsToJaccPermissionsTransformer.java:78)
       at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:622)
       at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1054)
       ... 18 more

      Attached you find an example.ear. The error may be triggered by defining the system property

      helloweb.host=no.such.host.com

      Also attached you find two possible fixes. The first one throws a better exception. The alternative one just skips the webapp.

      Attachments

        1. hello.ear
          1 kB
          Bodo Pfelzer
        2. fix.patch
          0.7 kB
          Bodo Pfelzer
        3. alternativefix.patch
          1 kB
          Bodo Pfelzer

        Issue Links

          Activity

            People

              rzo1 Richard Zowalla
              bodop Bodo Pfelzer
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m