[ 
http://issues.ops4j.org/browse/PAXWEB-182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266#action_13266
 ] 

Alin Dreghiciu commented on PAXWEB-182:
---------------------------------------

To anser to your question "Generally, can we somehow guarantee that the 
endpoint is indeed available when the WebAppPublisher.publish() method 
returns?".

That cannot be done because publishing is just a kind of registration of the 
WebApp. The actual registration with web container is done when the web 
container is available. 
That could be right away or in 1 hour for example. It also handles the dynamics 
of http service. E.g. you could just stop pax web for maintenance or 
reconfiguration and when it will be back the web app will get re-registered 
which is pretty cool in my view.

I'm also wondering: are you using WebAppPublisher directly? As in 
http://jbossosgi.blogspot.com/2009/10/extender-pattern-vs-lifecycle.html

I will further try to solve the problem related to why jetty context is not 
there yet even if it has been registered.

> HttpServiceServletHandler starts after WebAppPublisher returns
> --------------------------------------------------------------
>
>                 Key: PAXWEB-182
>                 URL: http://issues.ops4j.org/browse/PAXWEB-182
>             Project: Pax Web
>          Issue Type: Bug
>    Affects Versions: 0.7.1
>            Reporter: Thomas Diesler
>            Assignee: Alin Dreghiciu
>             Fix For: 0.8.0
>
>
> After an update to 0.7.1, I see
> {code}
> 2009-10-21 11:15:18,760 DEBUG [org.ops4j.pax.swissbox.extender.BundleWatcher] 
> Scanning bundle [example-webapp]
> 2009-10-21 11:15:18,767 DEBUG [org.ops4j.pax.swissbox.extender.BundleWatcher] 
> Found resources 
> [vfszip:/home/tdiesler/svn/jboss-osgi/trunk/testsuite/example/target/test-libs/example-webapp.war/WEB-INF/web.xml]
> 2009-10-21 11:15:18,773 DEBUG 
> [org.ops4j.pax.web.extender.war.internal.WebXmlObserver] Parsing a web 
> application from 
> [vfszip:/home/tdiesler/svn/jboss-osgi/trunk/testsuite/example/target/test-libs/example-webapp.war/WEB-INF/web.xml]
> 2009-10-21 11:15:18,803 DEBUG 
> [org.ops4j.pax.web.extender.war.internal.WebXmlObserver] Parsed web app 
> [WebApp{displayName=WebApp Sample,contextName=null}]
> 2009-10-21 11:15:18,804 DEBUG 
> [org.ops4j.pax.web.extender.war.internal.WebXmlObserver] No 'Webapp-Context' 
> manifest attribute specified
> 2009-10-21 11:15:18,807 DEBUG 
> [org.ops4j.pax.web.extender.war.internal.WebXmlObserver] Using bundle 
> symbolic name [example-webapp] as context name
> 2009-10-21 11:15:18,807 INFO  
> [org.ops4j.pax.web.extender.war.internal.WebXmlObserver] Using 
> [example-webapp] as web application context name
> 2009-10-21 11:15:18,808 DEBUG 
> [org.ops4j.pax.web.extender.war.internal.WebAppPublisher] Publishing web 
> application [WebApp{displayName=WebApp Sample,contextName=example-webapp}]
> 2009-10-21 11:15:18,820 INFO  
> [org.ops4j.pax.web.service.jetty.internal.JettyServerImpl] Pax Web available 
> at [0.0.0.0]:[8090]
> 2009-10-21 11:15:18,825 DEBUG 
> [org.ops4j.pax.swissbox.tracker.ReplaceableService] Creating replaceable 
> service for [interface org.osgi.service.http.HttpService]
> 2009-10-21 11:15:18,825 DEBUG [org.mortbay.jetty] Container 
> jettyserverwrap...@174f02c + niosocketconnectorwrap...@0.0.0.0:8090 as 
> connector
> 2009-10-21 11:15:18,826 DEBUG 
> [org.ops4j.pax.web.service.internal.ConfigurationImpl] Reading configuration 
> property org.ops4j.pax.web.session.timeout has failed
> 2009-10-21 11:15:18,826 DEBUG 
> [org.ops4j.pax.web.service.jetty.internal.JettyServerImpl] Starting 
> JettyServerImpl{}
> 2009-10-21 11:15:18,827 DEBUG [org.mortbay.jetty] jetty-6.1.x
> 2009-10-21 11:15:18,839 DEBUG 
> [org.ops4j.pax.swissbox.tracker.ServiceCollection] Creating service 
> collection for [interface org.osgi.service.http.HttpService]
> 2009-10-21 11:15:18,846 DEBUG 
> [org.jboss.deployers.plugins.deployers.DeployersImpl] Fully Deployed 
> vfszip:/home/tdiesler/svn/jboss-osgi/trunk/testsuite/example/target/test-libs/example-webapp.war/
> 2009-10-21 11:15:18,848 DEBUG 
> [org.jboss.osgi.spi.logging.ExportedPackageHelper] Exported-Packages: 
> example-webapp
> 2009-10-21 11:15:18,861 DEBUG [org.jboss.osgi.spi.testing.OSGiTest] ### START 
> org.jboss.test.osgi.example.webapp.WebAppTestCase
> 2009-10-21 11:15:18,873 DEBUG [org.mortbay.jetty] Container 
> jettyserverwrap...@174f02c + org.mortbay.thread.queuedthreadp...@1b9d4d8 as 
> threadpool
> 2009-10-21 11:15:18,879 DEBUG [org.mortbay.jetty] started 
> org.mortbay.thread.queuedthreadp...@1b9d4d8
> 2009-10-21 11:15:18,879 DEBUG [org.mortbay.jetty] starting 
> jettyserverwrap...@174f02c
> 2009-10-21 11:15:18,906 DEBUG [org.mortbay.jetty] started 
> org.mortbay.jetty.nio.selectchannelconnecto...@1af9e98
> 2009-10-21 11:15:18,929 DEBUG [org.mortbay.jetty] Started 
> niosocketconnectorwrap...@0.0.0.0:8090
> 2009-10-21 11:15:18,929 DEBUG [org.mortbay.jetty] started 
> niosocketconnectorwrap...@0.0.0.0:8090
> 2009-10-21 11:15:18,929 DEBUG [org.mortbay.jetty] started 
> jettyserverwrap...@174f02c
> 2009-10-21 11:15:18,935 DEBUG 
> [org.ops4j.pax.web.service.internal.ConfigurationImpl] Reading configuration 
> property org.ops4j.pax.web.session.timeout has failed
> 2009-10-21 11:15:18,952 INFO  
> [org.jboss.osgi.framework.plugins.internal.FrameworkEventsPluginImpl] Service 
> REGISTERED: Service{id=11 classes=[org.osgi.service.http.HttpService, 
> org.ops4j.pax.web.service.WebContainer]}
> 2009-10-21 11:15:18,954 DEBUG 
> [org.ops4j.pax.swissbox.tracker.ServiceCollection] Added service with 
> reference [Service{id=11 classes=[org.osgi.service.http.HttpService, 
> org.ops4j.pax.web.service.WebContainer]}]
> 2009-10-21 11:15:18,955 INFO  
> [org.ops4j.pax.web.service.internal.HttpServiceFactoryImpl] Binding bundle: 
> [Bundle{example-webapp:0.0.0}] to http service
> 2009-10-21 11:15:18,998 DEBUG 
> [org.ops4j.pax.web.service.internal.HttpServiceStarted] Creating http service 
> for: Bundle{example-webapp:0.0.0}
> 2009-10-21 11:15:19,035 DEBUG 
> [org.ops4j.pax.swissbox.tracker.ServiceCollection] Related service 
> [org.ops4j.pax.web.service.internal.httpservicepr...@10e820]
> 2009-10-21 11:15:19,035 DEBUG 
> [org.ops4j.pax.swissbox.tracker.ReplaceableService] Service changed [null]  
> -> [org.ops4j.pax.web.service.internal.httpservicepr...@10e820]
> 2009-10-21 11:15:19,037 DEBUG 
> [org.ops4j.pax.web.extender.war.internal.WebAppPublisher] Registering web 
> application [WebApp{displayName=WebApp Sample,contextName=example-webapp}] 
> from http service [org.ops4j.pax.web.service.internal.httpservicepr...@10e820]
> 2009-10-21 11:15:19,083 DEBUG 
> [org.ops4j.pax.web.service.internal.HttpServiceProxy] Creating adefault 
> context
> 2009-10-21 11:15:19,098 DEBUG 
> [org.ops4j.pax.web.service.internal.HttpServiceProxy] Setting context 
> paramters [{webapp.context=example-webapp}] for http context 
> [org.ops4j.pax.web.extender.war.internal.webappwebcontainercont...@6937f9]
> 2009-10-21 11:15:19,106 DEBUG 
> [org.ops4j.pax.web.service.internal.HttpServiceProxy] Registering resource: 
> [/] -> 
> 2009-10-21 11:15:19,107 DEBUG 
> [org.ops4j.pax.web.service.internal.HttpServiceStarted] Using context 
> [ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-1,name=example-webapp,httpcontext=org.ops4j.pax.web.extender.war.internal.webappwebcontainercont...@6937f9,contextParams={webapp.context=example-webapp}}]
> 2009-10-21 11:15:19,138 DEBUG 
> [org.ops4j.pax.web.service.jetty.internal.JettyServerImpl] Adding servlet 
> [ResourceModel{id=org.ops4j.pax.web.service.spi.model.ResourceModel-2,name=,urlPatterns=[/],alias=/,servlet=ResourceServlet{context=/example-webapp,alias=/,name=},initParams={},context=ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-1,name=example-webapp,httpcontext=org.ops4j.pax.web.extender.war.internal.webappwebcontainercont...@6937f9,contextParams={webapp.context=example-webapp}}}]
> 2009-10-21 11:15:19,300 DEBUG [org.mortbay.jetty] Container 
> jettyserverwrap...@174f02c + jettyserverhandlercollect...@199d8 as handler
> 2009-10-21 11:15:19,300 DEBUG [org.mortbay.jetty] Container 
> jettyserverhandlercollect...@199d8 + HttpServiceContext{httpContext=null} as 
> handler
> 2009-10-21 11:15:19,303 DEBUG [org.mortbay.jetty] Container 
> sessionhand...@1b35ece + servlethand...@115470e as handler
> 2009-10-21 11:15:19,303 DEBUG [org.mortbay.jetty] Container 
> sessionhand...@1b35ece + org.mortbay.jetty.servlet.hashsessionmana...@bc9673 
> as sessionManager
> 2009-10-21 11:15:19,303 DEBUG [org.mortbay.jetty] Container 
> HttpServiceContext{httpContext=null} + sessionhand...@1b35ece as handler
> 2009-10-21 11:15:19,310 DEBUG [org.mortbay.jetty] Container 
> sessionhand...@1b35ece - servlethand...@115470e as handler
> 2009-10-21 11:15:19,310 DEBUG [org.mortbay.jetty] Container 
> sessionhand...@1b35ece + httpserviceservlethand...@3680c1 as handler
> 2009-10-21 11:15:19,319 DEBUG [org.mortbay.jetty] Container 
> httpservicecontext{httpcontext=org.ops4j.pax.web.extender.war.internal.webappwebcontainercont...@6937f9}
>  + errorpageerrorhand...@102ae84 as errorHandler
> 2009-10-21 11:15:19,319 DEBUG 
> [org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper] 
> configureSessionManager for context 
> [httpservicecontext{httpcontext=org.ops4j.pax.web.extender.war.internal.webappwebcontainercont...@6937f9}]
>  using - timeout:null, cookie:null, url:null, workerName:null
> 2009-10-21 11:15:19,320 DEBUG 
> [org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper] Added servlet 
> context: 
> httpservicecontext{httpcontext=org.ops4j.pax.web.extender.war.internal.webappwebcontainercont...@6937f9}
> 2009-10-21 11:15:19,320 DEBUG 
> [org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper] (Re)starting 
> servlet contexts...
> 2009-10-21 11:15:19,387 DEBUG [org.mortbay.jetty] REQUEST 
> /example-webapp/message.txt on org.mortbay.jetty.httpconnect...@165ab39
> 2009-10-21 11:15:19,387 DEBUG 
> [org.ops4j.pax.web.service.spi.model.ServerModel] Matching 
> [/example-webapp/message.txt]...
> 2009-10-21 11:15:19,388 DEBUG 
> [org.ops4j.pax.web.service.spi.model.ServerModel] Path 
> [/example-webapp/message.txt] matched to 
> {pattern=/example-webapp/.*,model=ResourceModel{id=org.ops4j.pax.web.service.spi.model.ResourceModel-2,name=,urlPatterns=[/],alias=/,servlet=ResourceServlet{context=/example-webapp,alias=/,name=},initParams={},context=ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-1,name=example-webapp,httpcontext=org.ops4j.pax.web.extender.war.internal.webappwebcontainercont...@6937f9,contextParams={webapp.context=example-webapp}}}}
> 2009-10-21 11:15:19,389 WARN  [org.mortbay.jetty] EXCEPTION 
> java.lang.NullPointerException
>       at 
> org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
>       at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>       at org.mortbay.jetty.Server.handle(Server.java:322)
>       at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>       at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
>       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
>       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>       at 
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>       at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> {code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.ops4j.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

_______________________________________________
general mailing list
general@lists.ops4j.org
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to