Have a look at ServiceLifecycle
This is still an issue for me, we are (still) using 4.2.3.GA + JBossWS-CXF.
The workaround you described seems to work only with JBossWS-Native, or did you mean the standard JEE ServiceLifeCycle interface?
The actual problem we face is that the web service stack is only started upon first WebService-call, which takes so long that we get a timeout on the first call, but no problems afterwards.
Isn't there a more elegant way to ensure the web service stack starts up when JBoss is started?
Though the bean specified in servlet-class is not servlet,
users can specify load on startup for such beans.
During the deployment process the webservice bean
is translated to servlet that will handle the requests.
Thus setting load-on-startup is the solution you're looking for.