is there any way to use Relative Path in the webRoot server.properties ?
Announcement
Collapse
No announcement yet.
X
-
In theory yes. But in practice, it will be interpreted as relative to the cwd at the point the jvm that boostraps the app server. Note also that the jvm itself (or a possible wrapper script that invokes it on the end user's machine) or the app server bootstrap logic could change the cwd before our init block runs.
If you really know what you're doing, and you'd like to strike out on your own, without further support from us, you can attempt to set the webRoot value to use autodetect mode with a relative path like so:
Code:webRoot: __AUTODETECT__/../../foo/bar
Comment
-
it did not work setting it to
Code:webRoot: __AUTODETECT__/../../../webapps/ROOT
Code:Isomorphic Init: Exception in Init.go() java.lang.Exception: Configured webRoot path is invalid please check your server.properties setting. Current value is: __AUTODETECT__/../../../webapps/ROOT at com.isomorphic.base.ISCInit.go(ISCInit.java:118) at com.isomorphic.base.InitListener.contextInitialized(InitListener.java:92) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5017) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5531) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Isomorphic Init: Exception in Init.go() java.lang.Exception: Configured webRoot path is invalid please check your server.properties setting. Current value is: __AUTODETECT__/../../../webapps/ROOT at com.isomorphic.base.ISCInit.go(ISCInit.java:118) at com.isomorphic.base.Init.go(Init.java:92) at com.isomorphic.base.Init.go(Init.java:97) at com.isomorphic.base.Init.init(Init.java:105) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5267) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5557) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Isomorphic Init: Exception in Init.go() java.lang.Exception: Configured webRoot path is invalid please check your server.properties setting. Current value is: __AUTODETECT__/../../../webapps/ROOT at com.isomorphic.base.ISCInit.go(ISCInit.java:118) at com.isomorphic.base.Init.go(Init.java:92) at com.isomorphic.servlet.BaseServlet.init(BaseServlet.java:141) at com.isomorphic.servlet.PreCache.init(PreCache.java:76) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5267) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5557) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Isomorphic Init: Exception in Init.go() java.lang.Exception: Configured webRoot path is invalid please check your server.properties setting. Current value is: __AUTODETECT__/../../../webapps/ROOT at com.isomorphic.base.ISCInit.go(ISCInit.java:118) at com.isomorphic.base.Base.<clinit>(Base.java:52) at com.isomorphic.servlet.BaseServlet.init(BaseServlet.java:151) at com.isomorphic.servlet.PreCache.init(PreCache.java:76) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5267) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5557) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 12-07 12:28:59 [INFO] Isomorphic PreCache servlet loading Problem loading builtinTypes.xml Exception when loading from __AUTODETECT__/../../../webapps/ROOT/isomorphic/system/schema/builtinTypes.xml: java.io.FileNotFoundException: __AUTODETECT__\..\..\..\webapps\ROOT\__AUTODETECT__\..\..\..\webapps\ROOT\isomorphic\syst em\schema\builtinTypes.xml (The system cannot find the path specified) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at com.isomorphic.io.file.ISCNativeFile.getInputStream(ISCNativeFile.java:159) at com.isomorphic.xml.XML$DocumentCache.loadObjectFromFile(XML.java:414) at com.isomorphic.store.ProcessedFileCache.getObjectFromFile(ProcessedFileCache.java:147) at com.isomorphic.xml.XML.getXMLDocument(XML.java:434) at com.isomorphic.xml.XML.toDSRecords(XML.java:442) at com.isomorphic.xml.XML.toDSRecords(XML.java:446) at com.isomorphic.xml.XML.toDSRecords(XML.java:451) at com.isomorphic.datasource.DataSource.<clinit>(DataSource.java:1110) at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java:168) at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java:121) at com.isomorphic.servlet.PreCache.preLoadDataSources(PreCache.java:142) at com.isomorphic.servlet.PreCache.init(PreCache.java:89) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5267) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5557) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Comment
-
What is the purpose of having multiple web apps share these directories? The key thing to understand is that you should not be running different versions of the client and server, so with your approach where e.g. isomorphic/ is "shared", when you upgrade to a new version of SmartClient or SmartGWT, you would need to redeploy both the ROOT app that contains isomorphic/ (for the client-side) and simultaneously ALL the apps that use it.
If this is the outcome you want, why have separate apps at all?
Comment
Comment