1 2 Previous Next 23 Replies Latest reply on Jan 8, 2014 5:27 AM by mgreau Go to original post
      • 15. Re: CapeDwarf and WildFly
        alesj

        Or you just run capedwarf.sh or capedwarf.bat on Winz.

        • 16. Re: CapeDwarf and WildFly
          alesj
          • 17. Re: CapeDwarf and WildFly
            alesj
            • 18. Re: CapeDwarf and WildFly
              mgreau

              Hi,

               

              I've updated my booking app demo [1] to make it work with CapeDwarf-WildFly 2.0-Beta1 and AppEngine 1.1.8 [2]

              Indeed, you just have to launch the maven command associated to the target app server :

              • mvn clean package -Pwildfly wildfly:deploy (CapeDwarf instance need to be started, app is deployed as ROOT.war)
              • mvn clean package appengine:devserver

               

              Then you can access to the URLs below  :

               

              FYI, even if it works on CapeDwarf, it's not possible to deploy on GAE an app with an empty <url-pattern></url-pattern> element in web.xml file.

               

              I tried to deploy this app on OpenShift with a DIY cartridge, but it doesn't work for now, I will create an other topic about that.

               

              [1] https://github.com/mgreau/booking-gae-capedwarf

              [2] https://cloud-booking.appspot.com/

              • 19. Re: CapeDwarf and WildFly
                alesj

                FYI, even if it works on CapeDwarf, it's not possible to deploy on GAE an app with an empty <url-pattern></url-pattern> element in web.xml file.

                We just follow the servlet spec, and so does GAE.

                Or why would you wanna do that?


                • 20. Re: CapeDwarf and WildFly
                  mgreau

                  Sorry, the case was not well explained.

                   

                  So, with the same <servlet-mapping> configuration in web.xml file, I haven't the same behavior with AppEngine or CapeDwarf (WildFly so Undertow I guess).

                  Indeed, here are the tests I've done :

                   

                  1) Default Servlet Mapping AND index.jsp defined as welcome-file OR no welcome-file element but WEB-INF/index.jsp file

                  <web-app>

                  ....

                  <servlet-mapping>

                    <servlet-name>BookingServlet</servlet-name>

                    <url-pattern>/</url-pattern>

                  </servlet-mapping>

                  ...

                  <welcome-file-list>

                    <welcome-file>index.jsp</welcome-file>

                  </welcome-file-list>

                  </web-app>


                  => CapeDwarf : index.jsp kicks-in before default servlet

                  => AppEngine : default servlet is called (not index.jsp)


                  2) empty <url-pattern> AND index.jsp defined as welcome-file OR no welcome-file element but WEB-INF/index.jsp file

                  <web-app>

                  ....

                  <servlet-mapping>

                    <servlet-name>BookingServlet</servlet-name>

                    <url-pattern></url-pattern>

                  </servlet-mapping>

                  ...

                  <welcome-file-list>

                    <welcome-file>index.jsp</welcome-file>

                  </welcome-file-list>

                  </web-app>


                  => CapeDwarf : BookingServlet is called

                  => AppEngine : deployment failed : "[INFO] com.google.apphosting.utils.config.AppEngineConfigException: Invalid configuration"


                  According to the web-common-X.xsd [1], the servlet-mappingType is defined like this :

                  <xsd:complexType name="servlet-mappingType">

                      <xsd:annotation>

                      ...

                      </xsd:annotation>

                      <xsd:sequence>

                        <xsd:element name="servlet-name"

                                     type="javaee:servlet-nameType"/>

                        <xsd:element name="url-pattern"

                                     type="javaee:url-patternType"

                                     minOccurs="1"

                                     maxOccurs="unbounded"/>

                      </xsd:sequence>

                      <xsd:attribute name="id"

                                     type="xsd:ID"/>

                    </xsd:complexType>


                  and the javaee_6.xsd define the url-patternType :


                  <xsd:complexType name="url-patternType">

                      <xsd:annotation>

                  ...

                      </xsd:annotation>

                      <xsd:simpleContent>

                        <xsd:extension base="xsd:string"/>

                      </xsd:simpleContent>

                    </xsd:complexType>


                  so an empty <url-pattern> element should be accepted [2]



                  The JSR-315 Java Servlet 3.0 [3] explains in the Chapter 12 : Mappings Requests to Servlets

                  • the URL path mapping rules ($12.1 use of URL Path)
                  • and  the syntax to define mappings ($12.2 Specification of Mappings)


                  So it seems that Undertow follows all this features but as GAE doesn't yet support Servlet 3.0 [4], if I want to have the same behavior with both app servers with the same web.xml file, I think I have to either :

                  • define <url-pattern>/</url-pattern> and no <welcome-file> element, neither index.jsp file
                  • OR use the sendRedirect method in the index.jsp file

                   

                  That's was my point

                  Regards.


                  [1] http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html

                  [2] http://www.w3.org/TR/xmlschema-2/#string

                  [3] https://jcp.org/en/jsr/detail?id=315

                  [4] https://code.google.com/p/googleappengine/issues/detail?id=3091


                  • 21. Re: CapeDwarf and WildFly
                    ctomc

                    Btw, you should be looking at EE7 spec & XSDs

                    As WildFly support EE7, and undertow implements servlet 3.1.

                     

                    In any case your investigation is still valid Servlet 3.1

                    • 22. Re: CapeDwarf and WildFly
                      alesj

                      And GAE is still on 2.5 spec, only now moving over to new 3.x.

                      • 23. Re: CapeDwarf and WildFly
                        mgreau

                        Tomaz Cerar a écrit:

                         

                        Btw, you should be looking at EE7 spec & XSDs

                        As WildFly support EE7, and undertow implements servlet 3.1.

                        Yes, I'm aware about that [1]

                        Tomaz Cerar a écrit:

                         

                        In any case your investigation is still valid Servlet 3.1

                        In fact, since I didn't find new features about that in the change log "Changes since Servlet 3.0", I preferred to base my analysis on 3.0

                         

                        [1] http://mgreau.com/posts/2013/11/11/javaee7-websocket-angularjs-wildfly.html

                        1 2 Previous Next