Horrible Exception: java.lang.Exception: Could not find screen for Login.vm at org.apache.turbine.modules.screens.VelocityScreen.buildTemplate(VelocityScreen.java:104) at org.apache.turbine.modules.screens.TemplateScreen.doBuild(TemplateScreen.java:101) at org.apache.turbine.modules.Screen.build(Screen.java:57)
(and a lot of more lines)
Does anyone as any ideas about the cause and/or have a solution?
Thanks a lot!
Erwin
I don’t have any ideas for a cause or solution, but I do know that the axis.log “error” is unrelated. It’s not really an error, it’s really more of an info message and it would be nice if it was noted that way, but it’s not. Basically it’s just saying it didn’t find a custom configuration for the Axis engine configuration, so it’s going to use its defaults to generate its own configuration.
I also doubt it’s the Java and Tomcat versions: I have Java 1.7.0_55 and Tomcat 7.0.54. Unless that extra +0.0_05 is the difference between working and not working and I just really doubt that.
When you installed 1.6.3, is this a clean installation or an upgrade of your existing 1.6.1? In either case, did you follow the full setup or update procedure as described in the wiki, including running the appropriate database script? Usually failing to upgrade the database would fail in different ways, but I’m just looking for any kind of leads on this…
Try this: have a look at the file TurbineResources.properties in the WEB-INF/conf folder of your deployed XNAT. Look for a property named services.VelocityService.file.resource.loader.path. This should look something like this:
services.VelocityService.file.resource.loader.path = /templates,/module-templates,/xnat-templates,/xdat-templates,/base-templates
Let me know, thanks…
Sr. Programmer/Analyst
Neuroinformatics Research Group
Washington University School of Medicine
--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
xnat_discussi...@googlegroups.com.
To post to this group, send email to
xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion.
For more options, visit https://groups.google.com/d/optout.
Rick Herrick
Sr. Programmer/Analyst
Neuroinformatics Research Group
Washington University School of Medicine
Quoting an identifier also makes it case-sensitive, whereas unquoted names are always folded to lower case. For example, the identifiers FOO, foo, and "foo" are considered the same by PostgreSQL, but "Foo" and "FOO" are different from these three and each other.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussion+unsubscribe@googlegroups.com.
To post to this group, send email to xnat_discussion@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion.
For more options, visit https://groups.google.com/d/optout.
Rick Herrick
Sr. Programmer/Analyst
Neuroinformatics Research Group
Washington University School of Medicine
+ Now I can also confirm that this issue pops up when I try to deploy my XNAT instance as the root of Apache Tomcat, i.e. http://myserver.com(rather than http://myserver.com/myinstance). And "brand-new database" does not help in this case. (The way I deploy my instance as root is by moving the created WAR file over to TOMCAT_HOME/webapps as ROOT.war)
I would suggest shutting Tomcat down before copying your ROOT.war into the webapps folder and restarting once you’ve copied it in.
Another thing you might try is exploding the war manually. All of our operational deployments actually run in exploded configurations. I’ve run from a war before, but it’s possible that what you’re seeing is caused by running from the war and how the OS is resolving (or failing to resolve) XNAT’s attempts to access files within the web application folder.Supposing that your builder is located in $BUILDER, you could do something like this (all commands changed for your particular OS/path configuration):
- sudo service tomcat7 stop
- cd /var/lib/tomcat7/webapps
- rm -r * (or whatever if there are things you want to leave there, but the main thing is to delete the ROOT.war and the ROOT folder if Tomcat exploded the war in place)
- mkdir ROOT
- cd ROOT
- jar xf $BUILDER/deployments/xnat/target/xnat.war
You can also build XNAT directly into the webapps folder with the -Ddeploy=true option. The problem there is that it will build into, e.g. webapps/xnat. We handle mapping that configuration to the root application with changes to the <Host> entry in the server.xml file:<Host name="localhost" appBase="empty" unpackWARs="true" autoDeploy="false"><Context path="" docBase="/var/lib/tomcat7/webapps/xnat"/></Host>Inside of <Host>, that appBase entry tells Tomcat that its default folder for web applications is no longer webapps, but instead is “empty” (which in this case maps out to /var/lib/tomcat7/empty). There’s nothing there so there are no applications discovered on start-up.The <Context> element then maps the deployed XNAT application to the root context (which for whatever reason is specified with “” instead of “/“). Note that the path is absolute: changing the appBase means that Tomcat can’t find the application directly since it will look relative to the $TOMCAT/empty folder.Also note that the autoDeploy flag affects only automatic deployment AFTER Tomcat start-up (i.e. if you copy something into the appBase folder while Tomcat is running): everything within the folder indicated by the appBase setting is deployed on Tomcat start-up. That’s why you have to point to a different location for the appBase AND configure the docBase path for the root context: if you don’t, you’ll get two separate instances of XNAT running within your Tomcat, one at / and one at /xnat, which is bad.
Regarding your question about a “clean” XNAT, what I usually do if I want to completely scrub my builder folder and start with essentially untouched code is this:rm -r bin/[A-Z]* deployments ide-bin lib plugin-resources/cache projects workNote that ide-bin comes from my IDE, so you may not have that. Removing all of that stuff takes you back to a relatively pristine version of the builder.That said, I don’t think that’s really your issue. There’s no connection from the Tomcat back to your builder install, so anything that happens on the webapp side will have no effect on the stuff in the builder. I’m not certain what’s going on, but I’m certain it’s not that.
When autoDeploy or deployOnStartup operations are performed by a Host, the name and context path of the web application are derived from the name(s) of the file(s) that define(s) the web application. Consequently, the context path may not be defined in a META-INF/context.xml embedded in the application and there is a close relationship between the context name, context path, context version and the base file name (the name minus any .war or .xml extension) of the file.
Rick Herrick
Sr. Programmer/Analyst
Neuroinformatics Research Group
Washington University School of Medicine
...
<Host name="localhost" appBase="exploded"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="/usr/share/tomcat/webapps/your-app-name" /> <!-- your-app-name.war: gets exploded into appBase folder above -->
</Host>
...