geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jarek Gawor (JIRA)" <j...@apache.org>
Subject [jira] Created: (GERONIMO-2921) Tomcat does not register web service url mappings when web.xml is not present
Date Fri, 02 Mar 2007 05:46:50 GMT
Tomcat does not register web service url mappings when web.xml is not present
-----------------------------------------------------------------------------

                 Key: GERONIMO-2921
                 URL: https://issues.apache.org/jira/browse/GERONIMO-2921
             Project: Geronimo
          Issue Type: Bug
      Security Level: public (Regular issues)
          Components: Tomcat
            Reporter: Jarek Gawor


Here's some background info.  The web.xml file is now optional for JAX-WS POJO web services.
In such cases, there are certain rules on how the web.xml should get updated. That is, appropriate
<servlet> and <servlet-mapping> elements should be inserted into the web.xml.
When I update the in-memory representation of the web.xml with the appropriate entires, everything
works just fine on Jetty. However, with Tomcat, it seems like the url-mappings for the web
services do not get registered. Everything else is fine, e.g. the web services gbeans get
initialized, etc. and I can access a JSP deployed in the same war as the web services. 

After a bit of debugging I see that GeronimoStandardContext.addChild() is not called if the
web.xml file is not present even though the in-memory representation of the DD is updated
correctly. So somehow I think the in-memory representation of the DD is not being passed around
correctly.

Here's a stack trace when web.xml file is present and when addChild() is called:

System Thread [RMI TCP Connection(9)-192.168.1.102] (Suspended (breakpoint at line 217 in
GeronimoStandardContext))	
	GeronimoStandardContext.addChild(Container) line: 217	
	GeneratedMethodAccessor201.invoke(Object, Object[]) line: not available	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 585	
	IntrospectionUtils.callMethod1(Object, String, Object, String, ClassLoader) line: 899	
	SetNextRule.end() line: 193	
	SetNextRule(Rule).end(String, String) line: 229	
	Digester.endElement(String, String, String) line: 1058	
	SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not
available	
	XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available
[local variables unavailable]	
	XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean)
line: not available	
	XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available

	XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available	
	XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available

	SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available	
	SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available	
	SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available	
	Digester.parse(InputSource) line: 1562	
	ContextConfig.applicationWebConfig() line: 369	
	ContextConfig.start() line: 1060	
	ContextConfig.lifecycleEvent(LifecycleEvent) line: 261	
	LifecycleSupport.fireLifecycleEvent(String, Object) line: 120	
	GeronimoStandardContext(StandardContext).start() line: 4238	
	GeronimoStandardContext.access$201(GeronimoStandardContext) line: 66	
	GeronimoStandardContext$SystemMethodValve.invoke(Request, Response) line: 334	
	GeronimoBeforeAfterValve.invoke(Request, Response) line: 47	
	GeronimoStandardContext.start() line: 189	
	StandardHost(ContainerBase).addChildInternal(Container) line: 760	
	StandardHost(ContainerBase).addChild(Container) line: 740	
	StandardHost.addChild(Container) line: 525	
	TomcatContainer.addContext(TomcatContext) line: 331	
	TomcatContainer$$FastClassByCGLIB$$9370b073.invoke(int, Object, Object[]) line: not available

	FastMethod.invoke(Object, Object[]) line: 53	
	FastMethodInvoker.invoke(Object, Object[]) line: 38	
	GBeanOperation.invoke(Object, Object[]) line: 127	
	GBeanInstance.invoke(int, Object[]) line: 820	
	RawInvoker.invoke(int, Object[]) line: 57	
	RawOperationInvoker.invoke(AbstractName, Object[]) line: 35	
	ProxyMethodInterceptor.intercept(Object, Method, Object[], MethodProxy) line: 96	
	TomcatContainer$$EnhancerByCGLIB$$d873f7e2.addContext(TomcatContext) line: not available

	TomcatWebAppContext.doStart() line: 496	
	GBeanInstance.createInstance() line: 986	
	GBeanInstanceState.attemptFullStart() line: 267	
	GBeanInstanceState.start() line: 102	
	GBeanInstance.start() line: 529	
	GBeanDependency.attemptFullStart() line: 111	
	GBeanDependency.addTarget(AbstractName) line: 146	
	GBeanDependency$1.running(AbstractName) line: 120	
	BasicLifecycleMonitor.fireRunningEvent(AbstractName) line: 173	
	BasicLifecycleMonitor.access$300(BasicLifecycleMonitor, AbstractName) line: 41	
	BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent() line: 251	
	GBeanInstanceState.attemptFullStart() line: 292	
	GBeanInstanceState.start() line: 102	
	GBeanInstanceState.startRecursive() line: 124	
	GBeanInstance.startRecursive() line: 543	
	BasicKernel.startRecursiveGBean(AbstractName) line: 379	
	ConfigurationUtil.startConfigurationGBeans(AbstractName, Configuration, Kernel) line: 434

	EditableKernelConfigurationManager(KernelConfigurationManager).start(Configuration) line:
188	
	EditableKernelConfigurationManager(SimpleConfigurationManager).startConfiguration(Artifact,
LifecycleMonitor) line: 527	
	EditableKernelConfigurationManager(SimpleConfigurationManager).startConfiguration(Artifact)
line: 508	
	SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(int, Object, Object[]) line:
not available	
	FastMethod.invoke(Object, Object[]) line: 53	
	FastMethodInvoker.invoke(Object, Object[]) line: 38	
	GBeanOperation.invoke(Object, Object[]) line: 127	
	GBeanInstance.invoke(String, Object[], String[]) line: 855	
	BasicKernel.invoke(AbstractName, String, Object[], String[]) line: 239	
	KernelGBean.invoke(AbstractName, String, Object[], String[]) line: 342	
	KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(int, Object, Object[]) line: not available

	FastMethod.invoke(Object, Object[]) line: 53	
	FastMethodInvoker.invoke(Object, Object[]) line: 38	
	GBeanOperation.invoke(Object, Object[]) line: 127	
	GBeanInstance.invoke(String, Object[], String[]) line: 855	
	BasicKernel.invoke(AbstractName, String, Object[], String[]) line: 239	
	MBeanGBeanBridge.invoke(String, Object[], String[]) line: 168	
	MetaDataImpl$PrivateDynamicMeta(DynamicMetaDataImpl).invoke(Object, String, Object[], String[])
line: 213	
	MetaDataImpl.invoke(Object, String, Object[], String[]) line: 220	
	DefaultMBeanServerInterceptor.invoke(ObjectName, String, Object[], String[]) line: 815	
	JmxMBeanServer.invoke(ObjectName, String, Object[], String[]) line: 784	
	RMIConnectionImpl.doOperation(int, Object[]) line: 1408	
	RMIConnectionImpl.access$100(RMIConnectionImpl, int, Object[]) line: 81	
	RMIConnectionImpl$PrivilegedOperation.run() line: 1245	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line:
not available [native method]	
	RMIConnectionImpl.doPrivilegedOperation(int, Object[], Subject) line: 1348	
	RMIConnectionImpl.invoke(ObjectName, String, MarshalledObject, String[], Subject) line: 782

	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]

	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 585	
	UnicastServerRef2(UnicastServerRef).dispatch(Remote, RemoteCall) line: 294	
	Transport$1.run() line: 153	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line:
not available [native method]	
	TCPTransport(Transport).serviceCall(RemoteCall) line: 149	
	TCPTransport.handleMessages(Connection, boolean) line: 466	
	TCPTransport$ConnectionHandler.run() line: 707	
	Thread.run() line: 595	


It looks like ContextConfig.applicationWebConfig() is (re)parsing web.xml file but I'm not
sure where it gets it from. The url its using to load the file is: jndi:/0.0.0.0/jaxws-war-2.0-SNAPSHOT/WEB-INF/web.xml



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message