You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Jarek Gawor (JIRA)" <ji...@apache.org> on 2007/03/02 16:35:51 UTC

[jira] Updated: (GERONIMO-2921) Tomcat does not register web service url mappings when web.xml is not present

     [ https://issues.apache.org/jira/browse/GERONIMO-2921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jarek Gawor updated GERONIMO-2921:
----------------------------------

    Attachment: jaxws-war-2.0-SNAPSHOT.war

> 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
>         Attachments: jaxws-war-2.0-SNAPSHOT.war
>
>
> 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.