On 14/06/2011 05:14, Fraser, James wrote: > UNCLASSIFIED > > Hi, > > I am trying to embed Tomcat 7.0.11 into my standard web application. > This web application defines some Resource elements in > META-INF/context.xml - yet, Tomcat is not loading this file.
addWebapp should return a Context object. You'll need to call setConfigFile() on that Context object. Mark > > tomcat = new Tomcat(); > tomcat.setBaseDir("."); > tomcat.setPort(8084); > tomcat.addWebapp("/", System.getProperty("user.dir") + > "/build/web"); > tomcat.setHostname("localhost"); > tomcat.enableNaming(); > tomcat.start(); > > Causes the following error: > > javax.naming.NamingException: Cannot create resource instance > at > org.apache.naming.factory.ResourceEnvFactory.getObjectInstance(ResourceE > nvFactory.java:117) > at > javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:826) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:145) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:814) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:159) > at > dsto.adiib.ws.harmoniser.AdiibHarmoniser.<init>(AdiibHarmoniser.java:113 > ) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA > ccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons > tructorAccessorImpl.java:27) > at > java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at java.lang.Class.newInstance0(Class.java:355) > at java.lang.Class.newInstance(Class.java:308) > at > com.sun.xml.ws.api.server.InstanceResolver.createNewInstance(InstanceRes > olver.java:215) > at > com.sun.xml.ws.api.server.InstanceResolver.createDefault(InstanceResolve > r.java:180) > at > com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.jav > a:123) > at > com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:505) > at > com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(D > eploymentDescriptorParser.java:253) > at > com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(Deploymen > tDescriptorParser.java:147) > at > com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextIn > itialized(WSServletContextListener.java:124) > > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.j > ava:4681) > at > org.apache.catalina.core.StandardContext$1.call(StandardContext.java:518 > 4) > at > org.apache.catalina.core.StandardContext$1.call(StandardContext.java:517 > 9) > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto > r.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja > va:908) > at java.lang.Thread.run(Thread.java:662) > > Line 113 of AdiibHarmoniser is like so: > > HarmoniserImplConfigBean harmoniserImplConfigBean = > (HarmoniserImplConfigBean)envCtx.lookup(beanName); > > This essentially loads some external beans for me. > > My context.xml looks like so: > > <?xml version="1.0" encoding="UTF-8"?> > <Context antiJARLocking="true" path="/AdiibHarmoniser"> > <Resource auth="Container" csdTypeComparatorValue="VIDEO" > csdViewDataModel="NSIL_VIDEO_VIEW" dibTextPath="//video" > factory="org.apache.naming.factory.BeanFactory" harmonise="true" > harmoniserClassName="dsto.adiib.ws.harmoniser.FmvHarmoniser" > name="bean/FmvFactory" subscriptionId="adiibFmvHarmoniser" > type="dsto.adiib.ws.harmoniser.HarmoniserImplConfigBean"/> > > <Resource auth="Container" csdTypeComparatorValue="IMAGERY" > csdViewDataModel="NSIL_IMAGERY_VIEW" dibTextPath="//nitf" > factory="org.apache.naming.factory.BeanFactory" harmonise="true" > harmoniserClassName="dsto.adiib.ws.harmoniser.NitfHarmoniser" > name="bean/NitfFactory" subscriptionId="adiibNitfHarmoniser" > type="dsto.adiib.ws.harmoniser.HarmoniserImplConfigBean"/> > > </Context> > > Using normal Tomcat (non embedded) everything works fine. I found a post > similar to my problem here: > http://stackoverflow.com/questions/5238451/jndi-jdbc-data-source-in-embe > dded-tomcat-7, yet this caused a followon exception. > > java.lang.NoSuchMethodError: > org.apache.catalina.Context.setConfigFile(Ljava/lang/String;)V > > Any ideas? > > Kind Regards, > > James > > IMPORTANT: This email remains the property of the Department of Defence > and is subject to the jurisdiction of section 70 of the Crimes Act 1914. > If you have received this email in error, you are requested to contact > the sender and delete the email. > > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org