[jboss-dev-forums] [JBoss AS7 Development] - Re: Load on startup is ignored - JaxWS webservice is always initialized first
Jim Ma
do-not-reply at jboss.com
Mon Jul 25 00:49:48 EDT 2011
Jim Ma [http://community.jboss.org/people/jim.ma] created the discussion
"Re: Load on startup is ignored - JaxWS webservice is always initialized first"
To view the discussion, visit: http://community.jboss.org/message/617278#617278
--------------------------------------------------------------
> * Why is the ServletContextListener called when all Servlets are instantiated?
>
You probably misundertood by the following webservice deployer output:
> 12:13:26,227 INFO [org.jboss.wsf.stack.cxf.metadata.MetadataBuilder] (MSC service thread 1-2) Add Service
> id=HelloServlet
> address= http://localhost:8080/helloServlet/HelloServlet http://localhost:8080/helloServlet/HelloServlet
> implementor=servlet.hello.helloservlet.HelloServletImpl
> invoker=org.jboss.wsf.stack.cxf.InvokerJSE
> serviceName={ http://helloservlet.hello.servlet/ http://helloservlet.hello.servlet/}HelloServletImplService
> portName={ http://helloservlet.hello.servlet/ http://helloservlet.hello.servlet/}HelloServletImplPort
> wsdlLocation=null
> mtomEnabled=false
> 12:13:26,228 INFO [org.jboss.ws.common.management.DefaultEndpointRegistry] (MSC service thread 1-2) register: jboss.ws:context=helloServlet,endpoint=HelloServlet
> 12:13:29,986 INFO [stdout] (MSC service thread 1-2) HelloServlet is instantiated!
> 12:13:29,991 INFO [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (MSC service thread 1-2) Creating Service { http://helloservlet.hello.servlet/ http://helloservlet.hello.servlet/}HelloServletImplService from class servlet.hello.helloservlet.HelloServlet
> 12:13:30,023 INFO [org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-2) Setting the server's publish address to be http://localhost:8080/helloServlet/HelloServlet http://localhost:8080/helloServlet/HelloServlet
> 12:13:30,024 WARN [org.jboss.wsf.stack.cxf.resolver.JBossWSResourceResolver] (MSC service thread 1-2) Cannot resolve resource: cxf
> 12:13:30,030 INFO [org.jboss.wsf.stack.cxf.deployment.WSDLFilePublisher] (MSC service thread 1-2) WSDL published to: file:/home/jimma/x1/code/git-client/maerqiang-work/jboss-as/build/target/jboss-as-7.1.0.Alpha1-SNAPSHOT/standalone/data/wsdl/helloServlet.war/HelloServletImplService.wsdl
> 12:13:31,517 INFO [org.jboss.as.webservices.service.EndpointService] (MSC service thread 1-10) Starting service jboss.ws.endpoint.helloServlet.HelloServlet
As you see the HelloServletImpl.class (configured in web.xml <servlet-class>servlet.hello.helloservlet.HelloServletImpl</servlet-class>) is not a real servlet class, the webservie deployer will modify the web.xml and start the endpoint impl before the real servlet - org.jboss.wsf.stack.cxf.CXFServletExt which servers the servlt transport initialize and start to work. These webservice deployers which output above message are executed before the web deployer to create WebContext . That's why you see it is executed after the HelloServlet is Initialized. But ServletContextListener is actually executed as expected before the real servlets are initialized. Here in your war file is after CXFServletExt and Startup are initialized.
> * *Why is "<load-on-startup>" ignored when the implementation differ only in the WS implementation?*
>
It is not ignored. The <load-on-startup> configured to HelloServlet is passed to org.jboss.wsf.stack.cxf.CXFServletExt. I tried with your example it works properly.
> rushead wrote:
> * Last but not least: What is the best and usual way to initialize a custom environment for several servlets in a war file?
>
I did not get what you want to initialize from the source code(maybe I missed something), so I am not sure if do the initialize work in a real servlet and inject something with WebServiceContext can help. Here is some documentation about how to access MessageContext and/or Http request and response: http://cxf.apache.org/docs/servlet-transport.html http://cxf.apache.org/docs/servlet-transport.html
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/617278#617278]
Start a new discussion in JBoss AS7 Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2225]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20110725/6489e0ad/attachment.html
More information about the jboss-dev-forums
mailing list