Hi Andy,

On Tomcat side everything seems to work just fine.

It seems that sitemash (wrongly) assumes the location of the file config file. Try on sitemesh forum/mailing list.

> Caused by: com.opensymphony.module.sitemesh.factory.FactoryException: Could > not read config file : /WEB-INF/sitemesh.xml: java.io.FileNotFoundException:
> /usr/local/apache-tomcat/webapps/sg (No such file or directory)

Regards,
Ognjen


Andy Ee wrote:
Hi Ognjen,

Thank you for your quick response!

I have undeployed the old application (test.war) under Tomcat Manager, as
well as renamed test.war to sg#server#test.war under webapps. Without the
need to restart Tomcat, I saw the new project directory created under
/webapps/sg#server#test after awhile.

I tried to access http://localhost:8080/sg/server/test but it doesn't work.

Under catalina.out log:

INFO: Undeploying context [/test]

Aug 17, 2009 6:57:24 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive sg#server#test.war

[test] DEBUG [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
StartupListener.contextInitialized(44) | initializing context...

AbandonedObjectPool is used
(org.apache.commons.dbcp.abandonedobjectp...@169be56)

   LogAbandoned: false

   RemoveAbandoned: true

   RemoveAbandonedTimeout: 60

[test] INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
DefaultValidatorFactory.setValidationConfigLocations(78) | Loading
validation configurations from [ServletContext resource
[/WEB-INF/validation.xml],ServletContext resource
[/WEB-INF/validator-rules.xml],ServletContext resource
[/WEB-INF/validator-rules-custom.xml]]

[test] DEBUG [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
MS3Crypto.initParams(53) | Initializing crypto parameters.

[test] DEBUG [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
MS3Crypto.initParams(80) | Raw Seed : [...@87c801

[test] DEBUG [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
StartupListener.contextInitialized(95) | Remember Me Enabled? null

[test] INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
LocaleFilter.init(152) | Initializing filter 'localeFilter'

[test] INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
LocaleFilter.init(177) | Filter 'localeFilter' configured successfully

[test] INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
GZIPFilter.init(152) | Initializing filter 'compressionFilter'

[test] INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
GZIPFilter.init(177) | Filter 'compressionFilter' configured successfully

Aug 17, 2009 6:57:44 PM org.apache.catalina.core.StandardContext start

SEVERE: Error filterStart

Aug 17, 2009 6:57:44 PM org.apache.catalina.core.StandardContext start

SEVERE: Context [/singapore/dbs/test] startup failed due to previous errors

Under localhost log:

Aug 17, 2009 6:57:44 PM org.apache.catalina.core.StandardContext filterStart

SEVERE: Exception starting filter sitemesh

com.opensymphony.module.sitemesh.factory.FactoryException: Cannot construct
Factory : com.opensymphony.module.sitemesh.factory.DefaultFactory:
java.lang.reflect.InvocationTargetException

        at com.opensymphony.module.sitemesh.Factory.report(Factory.java:87)

        at
com.opensymphony.module.sitemesh.Factory.getInstance(Factory.java:56)

        at
com.opensymphony.module.sitemesh.filter.PageFilter.init(PageFilter.java:86)

        at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilter
Config.java:275)

        at
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFil
terConfig.java:397)

        at
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterCon
fig.java:108)

        at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:38
00)

        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)

        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
91)

        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)

        at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)

        at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)

        at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)

        at
org.apache.catalina.startup.HostConfig.check(HostConfig.java:1274)

        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:296)

        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)

        at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:
1337)

        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1601)

        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1610)

        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(Cont
ainerBase.java:1590)

        at java.lang.Thread.run(Thread.java:619)

Root cause:

java.lang.reflect.InvocationTargetException

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)

        at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces
sorImpl.java:39)

        at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc
torAccessorImpl.java:27)

        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

        at
com.opensymphony.module.sitemesh.Factory.getInstance(Factory.java:52)

        at
com.opensymphony.module.sitemesh.filter.PageFilter.init(PageFilter.java:86)

        at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilter
Config.java:275)

        at
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFil
terConfig.java:397)

        at
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterCon
fig.java:108)

        at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:38
00)

        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)

        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
91)

        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)

        at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)

        at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)

        at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)

        at
org.apache.catalina.startup.HostConfig.check(HostConfig.java:1274)

        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:296)

        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)

        at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:
1337)

        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1601)

        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1610)

        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(Cont
ainerBase.java:1590)

        at java.lang.Thread.run(Thread.java:619)

Caused by: com.opensymphony.module.sitemesh.factory.FactoryException: Could
not read config file : /WEB-INF/sitemesh.xml: java.io.FileNotFoundException:
/usr/local/apache-tomcat/webapps/sg (No such file or directory)

        at com.opensymphony.module.sitemesh.Factory.report(Factory.java:87)

        at
com.opensymphony.module.sitemesh.factory.DefaultFactory.loadConfig(DefaultFa
ctory.java:131)

        at
com.opensymphony.module.sitemesh.factory.DefaultFactory.<init>(DefaultFactor
y.java:57)

        ... 25 more

Aug 17, 2009 6:57:44 PM org.apache.catalina.core.ApplicationContext log

INFO: Closing Spring root WebApplicationContext

Any idea? Thanks.

Best Regards,
Andy Ee




-----Original Message-----
From: Ognjen Blagojevic [mailto:ogn...@etf.bg.ac.rs] Sent: Monday, August 17, 2009 7:00 PM
To: Tomcat Users List
Subject: Re: Multi-Level Context Paths

Hi Andy,

Try to undeploy the old application. Rename the test.war to
sg#server#test.war, and deploy it.

Regards,

Ognjen

Andy Ee wrote:



Dear All,




I need an urgent help, and I hope you will shed some light to it.




I have recently installed Apache Tomcat version 6.0.20. I copied my
project

file (test.war) under /usr/local/apache-tomcat-6.0.20/webapps/ and it

deployed successfully. I can access the site via the URL of

<http://localhost:8080/ms3/> http://localhost:8080/test/. For this
example,

the context path simply follows the filename of the war file.




There is a new requirement to setup multi-level context path as in I need

the URL to be  <http://localhost:8080/sg/server/test/>

http://localhost:8080/sg/server/test/ instead. I read up your site and

confirmed that adding Context path within server.xml is not recommended. I

went ahead to make a copy of the existing test.xml to sg#server#test.xml

under /usr/local/apache-tomcat-6.0.20/conf/Catalina/localhost/. Then I

restarted Tomcat.




The content of sg#server#test is:




<Context path="/test" debug="99" reloadable="true"


    antiJARLocking="true" antiResourceLocking="false">




    <!--Resource name="jdbc/test" auth="Container"

type="javax.sql.DataSource"


              maxActive="100" maxIdle="30" maxWait="10000"


              driverClassName="oracle.jdbc.driver.OracleDriver"


              username="MS3_STL" password="password"


              url="jdbc:oracle:thin:@192.168.0.37:1521:MS3"


              defaultAutoCommit="true" removeAbandoned="true"


              removeAbandonedTimeout="60" logAbandoned="true"/-->


</Context>




I restarted Tomcat but it gives errors under Catalina.out




Aug 17, 2009 5:54:43 PM org.apache.catalina.core.StandardContext

resourcesStart


SEVERE: Error starting static Resources


java.lang.IllegalArgumentException: Document base

/usr/local/apache-tomcat/webapps/sg#server#test does not exist or is not a

readable directory


        at

org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:14

2)


        at

org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java

:4048)


        at

org.apache.catalina.core.StandardContext.start(StandardContext.java:4217)


        at

org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7

91)


        at

org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)


        at

org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)


        at

org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)


        at

org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556

)


        at

org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)


        at

org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)


        at

org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)


        at

org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor

t.java:119)


        at

org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)


        at

org.apache.catalina.core.StandardHost.start(StandardHost.java:722)


        at

org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)


        at

org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)


        at

org.apache.catalina.core.StandardService.start(StandardService.java:516)


        at

org.apache.catalina.core.StandardServer.start(StandardServer.java:710)


        at org.apache.catalina.startup.Catalina.start(Catalina.java:583)


        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


        at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39

)


        at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl

.java:25)


        at java.lang.reflect.Method.invoke(Method.java:597)


        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)


        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)


Aug 17, 2009 5:54:43 PM org.apache.catalina.core.StandardContext start


SEVERE: Error in resourceStart()


Aug 17, 2009 5:54:43 PM org.apache.catalina.core.StandardContext start


SEVERE: Error getConfigured


Aug 17, 2009 5:54:43 PM org.apache.catalina.core.StandardContext start


SEVERE: Context [/sg/server/test] startup failed due to previous errors


Aug 17, 2009 5:54:43 PM org.apache.catalina.core.StandardContext stop


INFO: Container

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sg/server/te

st] has not been started


Aug 17, 2009 5:54:43 PM org.apache.coyote.http11.Http11Protocol start


INFO: Starting Coyote HTTP/1.1 on http-6060


Aug 17, 2009 5:54:43 PM org.apache.coyote.http11.Http11Protocol start


INFO: Starting Coyote HTTP/1.1 on http-6443


Aug 17, 2009 5:54:43 PM org.apache.jk.common.ChannelSocket init


INFO: JK: ajp13 listening on /0.0.0.0:6009


Aug 17, 2009 5:54:43 PM org.apache.jk.server.JkMain start


INFO: Jk running ID=0 time=0/40  config=null


Aug 17, 2009 5:54:43 PM org.apache.catalina.startup.Catalina start


INFO: Server startup in 18859 ms




I have searched the Internet and couldn't find any posts with solutions to

such issue. It seems that setting up multi-level context path in Tomcat 6
is

not so straight-forwarded.




Please kindly help, thanks.




Best Regards,

Andy Ee









---------------------------------------------------------------------

To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org

For additional commands, e-mail: users-h...@tomcat.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to