Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Continuations in Jetty 7?

I tried out the test.war chat app and that works.  Although I'm not certain I understand why it works.  Which Continuation type does it use?  Servlet3?  Jetty6?  Faux?  It doesn't seem to have the Jetty6 util jar in there, so I'm not sure how it's getting past this:

static
37
     {
38
         boolean servlet3Support=false;
         Constructor<? extends Continuation>s3cc=null;
         try
41
         {
42
             boolean servlet3=ServletRequest.class.getMethod("startAsync")!=null;
             if (servlet3)
             {
45
                 Class<? extends Continuations3c = ContinuationSupport.class.getClassLoader().loadClass("org.eclipse.jetty.continuation.Servlet3Continuation").asSubclass(Continuation.class);
                 s3cc=s3c.getConstructor(ServletRequest.class);
                 servlet3Support=true;
             }
49
         }
50
         catch (Exception e)
         {}
52
         finally
53
         {
54
             __servlet3=servlet3Support;
55
             __newServlet3Continuation=s3cc;
         }
57
         
58
         boolean jetty6Support=false;
         Constructor<? extends Continuation>j6cc=null;
         try
61
         {
62
             Class<?> jetty6ContinuationClass = ContinuationSupport.class.getClassLoader().loadClass("org.mortbay.util.ajax.Continuation");
             boolean jetty6=jetty6ContinuationClass!=null;
             if (jetty6)
             {
66
                 Class<? extends Continuationj6c = ContinuationSupport.class.getClassLoader().loadClass("org.eclipse.jetty.continuation.Jetty6Continuation").asSubclass(Continuation.class);
                 j6cc=j6c.getConstructor(ServletRequest.classjetty6ContinuationClass);
                 jetty6Support=true;
             }
70
         }
71
         catch (Exception e)
         {}
73
         finally
74
         {
75
             __jetty6=jetty6Support;
76
             __newJetty6Continuation=j6cc;
77
         }
78
         
79
         Class<?> waiting=null;
         try
81
         {
82
             waiting=ContinuationSupport.class.getClassLoader().loadClass("org.mortbay.util.ajax.WaitingContinuation");
         }
84
         catch (Exception e)
         {
86
         }
87
         finally
88
         {
89
             __waitingContinuation=waiting;
         }
91
     }

It also doesn't seem to use the ContinuationFilter.  My lib directory looks like:
activation-1.1.jar                                    jboss-jca-spi-5.0.3.GA.jar
ant-1.7.0.jar                                         jboss-jms-api-1.1.0.CR1.jar
ant-launcher-1.7.0.jar                                jboss-jpa-deployers-1.0.0-CR1.jar
antlr-2.7.6.jar                                       jboss-kernel-2.0.0.CR5.jar
aopalliance-1.0.jar                                   jboss-logging-log4j-2.0.5.GA.jar
apache-xerces-xercesImpl-2.9.1.jar                    jboss-logging-spi-2.0.5.GA.jar
asm-3.1.jar                                           jboss-managed-2.0.0.CR4.jar
aspectjrt-1.6.8.jar                                   jboss-mdr-2.0.0.GA.jar
aspectjweaver-1.6.8.jar                               jboss-metadata-1.0.0.CR16.jar
bcmail-jdk14-1.38.jar                                 jboss-metatype-2.0.0.CR4.jar
bcmail-jdk15-1.45.jar                                 jboss-reflect-2.0.0.GA.jar
bcprov-jdk14-1.38.jar                                 jboss-remoting-2.4.0.CR2.jar
bcprov-jdk15-1.45.jar                                 jboss-remoting-aspects-1.0.1.CR4.jar
bctsp-jdk14-1.38.jar                                  jboss-security-aspects-1.0.0.Beta1.jar
beanlib-5.0.2beta.jar                                 jboss-security-spi-2.0.2.SP2.jar
beanlib-hibernate-5.0.2beta.jar                       jboss-serialization-1.0.3.GA.jar
bsh-1.3.0.jar                                         jbosssx-2.0.2.SP2.jar
bsh-2.0b4.jar                                         jboss-transaction-api-1.0.1.GA.jar
c3p0-0.9.1.jar                                        jboss-transaction-aspects-1.0.0.Beta1.jar
cas-client-core-3.1.10.jar                            jboss-transaction-spi-5.0.3.GA.jar
cglib-2.2.jar                                         jboss-vfs-2.0.0.CR1.jar
commons-beanutils-1.7.0.jar                           jbossws-spi-1.0.3.GA.jar
commons-codec-1.3.jar                                 jbossxb-2.0.0.GA.jar
commons-collections-3.1.jar                           jcip-annotations-1.0.jar
commons-compress-1.0.jar                              jempbox-1.1.0.jar
commons-digester-1.6.jar                              jetty-client-7.1.6.v20100715.jar
commons-fileupload-1.2.1.jar                          jetty-continuation-7.1.6.v20100715.jar
commons-io-1.4.jar                                    jetty-http-7.1.6.v20100715.jar
commons-lang-2.2.jar                                  jetty-io-7.1.6.v20100715.jar
commons-logging-1.1.1.jar                             jetty-servlets-7.1.6.v20100715.jar
commons-validator-1.1.4.jar                           jetty-util-6.1.25.jar
concurrent-1.3.4-jboss-update1.jar                    jetty-util-7.1.6.v20100715.jar
dom4j-1.6.1.jar                                       jgroups-2.6.5.GA.jar
dtdparser121-1.2.1.jar                                jms-1.1.jar
ehcache-core-2.0.0.jar                                jmxri-1.2.1.jar
envers-annotations-emulation-3.5.1-Final.jar          jmxtools-1.2.1.jar
fontbox-1.1.0.jar                                     jnpserver-5.0.0.CR1.jar
freemarker-2.3.8.jar                                  jpa-emulation-3.5.3-Final.jar
geronimo-stax-api_1.0_spec-1.0.1.jar                  json-20090211.jar
gilead-core-1.3.2.jar                                 jsr181-api-2.1.1.jar
gilead-hibernate-1.3.2.jar                            jta-1.1.jar
gwt-ent-1.0.0.RC1.jar                                 jtidy-r8-20060801.jar
gwt-log-2.6.2.jar                                     log4j-1.2.15.jar
gwt-servlet-2.0.4.jar                                 log4jdbc4-1.2beta2.jar
gwt-sl-0.1.5.jar                                      lucene-analyzers-2.9.3.jar
gwt-websocketrpc-0.1.1.jar                            lucene-core-2.9.3.jar
gxt-2.1.1.jar                                         lucene-snowball-2.9.3.jar
hazelcast-1.8.3.jar                                   mail-1.4.jar
hazelcast-hibernate-1.8.3.jar                         metadata-extractor-2.4.0-beta-1.jar
hazelcast-wm-1.8.3.jar                                mysql-connector-java-5.1.12.jar
hibernate-annotations-3.5.5-Final.jar                 oro-2.0.7.jar
hibernate-annotations-emulation-3.5.5-Final.jar       pdfbox-1.1.0.jar
hibernate-c3p0-3.5.5-Final.jar                        poi-3.6.jar
hibernate-commons-annotations-3.2.0.Final.jar         poi-ooxml-3.6.jar
hibernate-core-3.5.5-Final.jar                        poi-ooxml-schemas-3.6.jar
hibernate-emulation-3.5.5-Final.jar                   poi-scratchpad-3.6.jar
hibernate-entitymanager-3.5.5-Final.jar               qdox-1.6.1.jar
hibernate-envers-3.5.5-Final.jar                      quartz-1.6.0.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar                 quartz-1.8.4.jar
hibernate-jpamodelgen-1.0.0.Final.jar                 security-1.0.2.jar
hibernate-search-3.2.1.Final.jar                      serializer-2.7.1.jar
hibernate-search-annotations-emulation-3.2.0.CR1.jar  slf4j-api-1.5.8.jar
hibernate-tools-3.2.0.ga.jar                          slf4j-log4j12-1.5.8.jar
itextpdf-5.0.2.jar                                    solr-core-1.4.0.jar
jacc-1.0.jar                                          solr-solrj-1.4.0.jar
javassist-3.4.ga.jar                                  spring-aop-3.0.1.RELEASE.jar
javassist-3.9.0.GA.jar                                spring-asm-3.0.1.RELEASE.jar
jaxb-api-2.1.4.jar                                    spring-aspects-3.0.1.RELEASE.jar
jaxws-api-2.1.1.jar                                   spring-beans-3.0.1.RELEASE.jar
jboss-aop-2.0.0.GA.jar                                spring-context-3.0.1.RELEASE.jar
jboss-aop-aspects-2.0.0.CR7.jar                       spring-context-support-3.0.1.RELEASE.jar
jbosscache-core-3.0.0.CR4.jar                         spring-core-3.0.1.RELEASE.jar
jboss-classloader-2.0.0.CR5.jar                       spring-_expression_-3.0.1.RELEASE.jar
jboss-classloading-2.0.0.CR5.jar                      spring-instrument-3.0.1.RELEASE.jar
jboss-classloading-spi-5.0.0.CR2.jar                  spring-instrument-tomcat-3.0.1.RELEASE.jar
jboss-classloading-vfs-2.0.0.CR5.jar                  spring-jdbc-3.0.1.RELEASE.jar
jboss-common-core-2.2.8.GA.jar                        spring-jms-3.0.1.RELEASE.jar
jboss-current-invocation-aspects-1.0.0.CR1.jar        spring-ldap-core-1.3.0.RELEASE.jar
jboss-dependency-2.0.0.CR5.jar                        spring-orm-3.0.1.RELEASE.jar
jboss-deployers-client-2.0.0.CR5.jar                  spring-oxm-3.0.1.RELEASE.jar
jboss-deployers-client-spi-2.0.0.CR5.jar              spring-portlet-2.0.8.jar
jboss-deployers-core-2.0.0.CR5.jar                    spring-security-acl-3.0.2.RELEASE.jar
jboss-deployers-core-spi-2.0.0.CR5.jar                spring-security-cas-client-3.0.2.RELEASE.jar
jboss-deployers-impl-2.0.0.CR5.jar                    spring-security-config-3.0.2.RELEASE.jar
jboss-deployers-spi-2.0.0.CR5.jar                     spring-security-core-3.0.2.RELEASE.jar
jboss-deployers-structure-spi-2.0.0.CR5.jar           spring-security-ldap-3.0.2.RELEASE.jar
jboss-deployers-vfs-2.0.0.CR5.jar                     spring-security-taglibs-3.0.2.RELEASE.jar
jboss-deployers-vfs-spi-2.0.0.CR5.jar                 spring-security-web-3.0.2.RELEASE.jar
jboss-ejb3-cache-1.0.0.jar                            spring-struts-3.0.1.RELEASE.jar
jboss-ejb3-common-1.0.0.jar                           spring-test-3.0.1.RELEASE.jar
jboss-ejb3-core-1.1.2.jar                             spring-tx-3.0.1.RELEASE.jar
jboss-ejb3-ext-api-1.0.0.jar                          spring-web-3.0.1.RELEASE.jar
jboss-ejb3-ext-api-impl-1.0.0.jar                     spring-webmvc-3.0.1.RELEASE.jar
jboss-ejb3-interceptors-1.0.1.jar                     stax-api-1.0.jar
jboss-ejb3-metadata-1.0.0.jar                         struts-1.2.9.jar
jboss-ejb3-proxy-1.0.0.jar                            system-1.114.jar
jboss-ejb3-proxy-clustered-1.0.0.jar                  tagsoup-1.2.jar
jboss-ejb3-security-1.0.0.jar                         tika-core-0.7.jar
jboss-ejb3-timerservice-spi-1.0.0.jar                 tika-parsers-0.7.jar
jboss-ejb3-transactions-1.0.0.jar                     transmorph-2.2.2.jar
jboss-ejb-api-3.0.0.CR1.jar                           trove-1.0.2.jar
jboss-envers-1.2.2.GA-hibernate-3.3.jar               xalan-2.7.1.jar
jboss-ha-client-1.1.0.CR4.jar                         xerces-xercesImpl-2.9.1.jar
jboss-ha-server-api-1.1.0.CR4.jar                     xml-apis-1.0.b2.jar
jboss-jacc-api-1.1.0.CR1.jar                          xml-apis-2.9.1.jar
jboss-jaspi-api-1.0.0.CR1.jar                         xmlbeans-2.3.0.jar
jboss-jaxrpc-1.0.4.GA.jar                             xpp3_min-1.1.4c.jar
jboss-jca-api-1.5.0.CR1.jar                           xstream-1.3.jar

web.xml:
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>

<display-name>Desktop</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/deployerConfigContext.xml</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>false</param-value>
</context-param>
<filter>
<filter-name>hazel-filter</filter-name>
<filter-class>com.hazelcast.web.WebFilter</filter-class>
<init-param>
<param-name>listener-count</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>apps-sharing-sessions</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>session-timeout</param-name>
<param-value>60</param-value>
</init-param>
</filter>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter>
<filter-name>entityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
<init-param>
<param-name>entityManagerFactoryBeanName</param-name>
<param-value>systemEMF</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hazel-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>


<listener>
<listener-class>com.hazelcast.web.WebFilter$ContextListener</listener-class>
</listener>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>springrpc</servlet-name>
<servlet-class>com.hazelcast.web.ServletWrapper</servlet-class>
<init-param>
<param-name>*hazelcast-base-servlet-class</param-name>
<param-value>org.springframework.web.servlet.DispatcherServlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>springservlets</servlet-name>
<servlet-class>com.hazelcast.web.ServletWrapper</servlet-class>
<init-param>
<param-name>*hazelcast-base-servlet-class</param-name>
<param-value>org.springframework.web.servlet.DispatcherServlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>gwt-log-remote-logger-servlet</servlet-name>
<servlet-class>com.hazelcast.web.ServletWrapper</servlet-class>
<init-param>
<param-name>*hazelcast-base-servlet-class</param-name>
<param-value>com.allen_sauer.gwt.log.server.RemoteLoggerServiceImpl</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>websocket-comet-servlet</servlet-name>
<servlet-class>com.hazelcast.web.ServletWrapper</servlet-class>
<init-param>
<param-name>*hazelcast-base-servlet-class</param-name>
<param-value>com.xteconline.desktop.servlet.comet.ServerPushServlet</param-value>
</init-param>
</servlet>


<servlet-mapping>
<servlet-name>springrpc</servlet-name>
<url-pattern>/com.xteconline.desktop.Desktop/rpc/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springservlets</servlet-name>
<url-pattern>/servlets/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>gwt-log-remote-logger-servlet</servlet-name>
<url-pattern>/com.xteconline.desktop.Desktop/gwt-log</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>websocket-comet-servlet</servlet-name>
<url-pattern>/comet</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>60</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


I used to have the ContinuationFilter in there, but I took it out when I saw the example didn't have it.

On Mon, Sep 20, 2010 at 4:59 PM, Jan Bartel <janb@xxxxxxxxxxx> wrote:
Kevin,

The test.war webapp in the hightide webapps directory uses the
continuations. In particular the ProxyServlet uses them, so try
accessing the test webapp and the proxy test and confirm it is
working for you, then have a look at the structure of the webapp
and compare it to yours. FYI here's the source of the ProxyServlet:
http://download.eclipse.org/jetty/stable-7/xref/org/eclipse/jetty/servlets/ProxyServlet.html

If you still can't figure it out, post the source of your servlet,
your web.xml and a list of what's in your WEB-INF/lib to this list.

cheers
Jan


On 21/09/10 07:45, Kevin Jordan wrote:
I put the jetty-continuation-7 jar in my webapps lib directory and I get
the same result.

On Mon, Sep 20, 2010 at 4:01 PM, Jan Bartel <janb@xxxxxxxxxxx
<mailto:janb@xxxxxxxxxxx>> wrote:

   Kevin,

   You need to copy the jetty-continuation jar into WEB-INF/lib of your
   webapp. Its just in $JETTY_HOME/lib so its inside the distribution.
   Possibly we should move it out of there to avoid confusion.

   regards
   Jan


   On 21/09/10 06:58, Kevin Jordan wrote:

       I'm using the Jetty Hightide distribution extracted straight out
       from a
       download and unless there's another jar I need,
       jetty-continuation-7.1.6.v20100715 is in the Jetty lib
       directory.  I get
       java.lang.IllegalStateException: !(Jetty || Servlet 3.0 ||
       ContinuationFilter) as the error whenever I go to it, which
       comes when I
       do a ContinuationSupport.getContinuation. I notice references to
       Jetty 6
       stuff in the source for it, which is why I thought I needed the
       jetty-util-6 jar.

       On Mon, Sep 20, 2010 at 3:48 PM, Jan Bartel <janb@xxxxxxxxxxx
       <mailto:janb@xxxxxxxxxxx>
       <mailto:janb@xxxxxxxxxxx <mailto:janb@xxxxxxxxxxx>>> wrote:

           Kevin,

           Here's 2 pages on eclipse that talk about continuations in
       jetty-7:

           1.
       http://wiki.eclipse.org/Jetty/Starting/Porting_to_Jetty_7#Continuations

           2. http://wiki.eclipse.org/Jetty/Feature/Continuations

           If you code to the jetty-7 api discussed in link 2 above, then
           it will work on jetty-6 and jetty-7 (and any servlet 3.x
       container).

           You need the jetty-continuations-7.x.jar in your webapp's
       WEB-INF/lib.

           If you code to the jetty-7 api and then deploy in jetty-6
       you'll get
           a warning about the ConfigurationFilter (used for backward
           compatibility) not being configured. Here's the reference
       for it:
       http://download.eclipse.org/jetty/stable-7/xref/org/eclipse/jetty/continuation/ContinuationFilter.html

           regards
           Jan

           On 21/09/10 02:10, Kevin Jordan wrote:

               I get now that I need the jetty-util-6 jar in there, but
       I'm having
               problems making Jetty use it.  First I just dumped it in
       the lib
               directory hoping Jetty would pick it up, but it didn't.
         Then I
               tried it
               in my webapp's lib directory and no luck there either.
         Then I tried
               adding it to the CLASSPATH env variable, but that didn't
       seem to do
               anything either.


         ContinuationSupport.class.getClassLoader().loadClass("org.mortbay.util.ajax.Continuation")
               seems to get a NoClassFoundException.  Where do I need
       to put the
               jetty-util-6 jar to get Jetty to load it so that part
       will work?

               On Wed, Sep 15, 2010 at 4:04 PM, Kevin Jordan
       <kevin@xxxxxxxxxxx <mailto:kevin@xxxxxxxxxxx>
       <mailto:kevin@xxxxxxxxxxx <mailto:kevin@xxxxxxxxxxx>>
       <mailto:kevin@xxxxxxxxxxx <mailto:kevin@xxxxxxxxxxx>
       <mailto:kevin@xxxxxxxxxxx <mailto:kevin@xxxxxxxxxxx>>>> wrote:

                   How are continuations supposed to be used in Jetty
       7?  When
               I try to
                   use them, I get !(Jetty || Servlet 3.0 ||
               ContinuationFilter).  I
                   have the ContinuationFilter on, but it seems to have
               initParameters
                   for jetty6, partial, and faux continuations.  But I
       also look at
                   ContinuationSupport and it seems to have references
                   to org.mortbay.util.ajax.Continuation which is
       supposed to be
                   renamed under the move to the org.eclipse package space.
                 Can anyone
                   give me an example of how to set it up?  I can't seem to
               find much
                   on the wiki in relation to doing it under Jetty 7.




               _______________________________________________
               jetty-users mailing list
       jetty-users@xxxxxxxxxxx <mailto:jetty-users@xxxxxxxxxxx>
       <mailto:jetty-users@xxxxxxxxxxx <mailto:jetty-users@xxxxxxxxxxx>>


       https://dev.eclipse.org/mailman/listinfo/jetty-users


           --
           Jan Bartel, Webtide LLC | janb@xxxxxxxxxxx
       <mailto:janb@xxxxxxxxxxx> <mailto:janb@xxxxxxxxxxx

       <mailto:janb@xxxxxxxxxxx>>

           | http://www.webtide.com




       _______________________________________________
       jetty-users mailing list
       jetty-users@xxxxxxxxxxx <mailto:jetty-users@xxxxxxxxxxx>
       https://dev.eclipse.org/mailman/listinfo/jetty-users


   --
   Jan Bartel, Webtide LLC | janb@xxxxxxxxxxx <mailto:janb@xxxxxxxxxxx>
   | http://www.webtide.com




_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users

--
Jan Bartel, Webtide LLC | janb@xxxxxxxxxxx | http://www.webtide.com


Back to the top