2015-11-05 11 views
0

我使用Eclipse Mars,Tomcat7,Java8,Sysdeo DevLoader和我遵循a Tynamo tutorial来配置tomcat插件。RegistryBuilder没有为一个项目添加Tapestry AppModule,可以正常工作

我有两个几乎相同的Tapestry项目。一个应用程序运行良好,但对方不会服务于任何页面,投掷:

SEVERE: Servlet.service() for servlet [default] in context with path [/admin] threw exception 
java.lang.RuntimeException: Exception constructing service 'WebSecurityManager': Error invoking constructor public org.tynamo.security.services.TapestryRealmSecurityManager(org.tynamo.security.Authenticator,org.apache.shiro.mgt.SubjectFactory,org.apache.shiro.mgt.RememberMeManager,java.util.Collection): Realms collection argument cannot be empty. 
    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75) 
... 
Caused by: java.lang.IllegalArgumentException: Realms collection argument cannot be empty. 
at org.apache.shiro.mgt.RealmSecurityManager.setRealms(RealmSecurityManager.java:78) 
at org.tynamo.security.services.TapestryRealmSecurityManager.<init>(TapestryRealmSecurityManager.java:31) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at org.apache.tapestry5.ioc.internal.util.ConstructorInvoker.invoke(ConstructorInvoker.java:48) 
... 50 more 

这个问题似乎从干我AppModule.addRealms没有被调用的应用程序的问题之前,安全管理器尝试获取Subject。事实上,其中一个应用程序似乎喜欢'挂毯治疗',而另一个则没有。下面是工作的一个:

Nov 05, 2015 11:45:53 AM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/bray.xml 
Nov 05, 2015 11:45:53 AM org.apache.catalina.core.StandardContext setPath 
WARNING: A context path must either be an empty string or start with a '/'. The path [bray] does not meet these criteria and has been changed to [/bray] 
Nov 05, 2015 11:45:53 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Context/Loader} Setting property 'debug' to '1' did not find a matching property. 
Nov 05, 2015 11:45:53 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Context/Loader} Setting property 'useSystemClassLoaderAsParent' to 'false' did not find a matching property. 
[DevLoader] Starting DevLoader 
[DevLoader] projectdir=/home/claude/git/bray/src/main/webapp 
[DevLoader] added file:/home/claude/git/bray/target/classes/ 
... 
[INFO] ioc.RegistryBuilder Adding module definition for class com.mydomain.services.AppModule 
[INFO] TapestryModule.ComponentClassResolver Available pages (16): 
       (blank): com.mydomain.pages.Index 
       About: com.mydomain.pages.About 

然后我看到了漂亮的“你好”由Tapestry和我的其他项目(admin)出现:

... 
Application 'app' (version 1.0-SNAPSHOT) startup time: 172 ms to build IoC Registry, 541 ms overall. 

______     __    ____ 
/_ __/__ ____ ___ ___//_______ __/__/ 
///_ `/ _ \/ -_|_-</ __/ __/ ////__ \ 
/_/ \_,_/ .__/\__/___/\__/_/ \_,//____/ 
     /_/     /___/ 5.3.8 (development mode) 


Nov 05, 2015 11:45:58 AM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/admin.xml 
Nov 05, 2015 11:45:58 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Context/Loader} Setting property 'debug' to '1' did not find a matching property. 
Nov 05, 2015 11:45:58 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Context/Loader} Setting property 'useSystemClassLoaderAsParent' to 'false' did not find a matching property. 
[DevLoader] Starting DevLoader 
[DevLoader] projectdir=/home/claude/git/tegu/admin/src/main/webapp 
... 
Nov 05, 2015 11:45:58 AM org.apache.catalina.deploy.WebXml setVersion 
WARNING: Unknown version string [3.1]. Default version will be used. 
log4j:WARN No appenders could be found for logger (org.apache.tapestry5.ioc.RegistryBuilder). 
log4j:WARN Please initialize the log4j system properly. 
Nov 05, 2015 11:46:02 AM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/manager.xml 
Nov 05, 2015 11:46:02 AM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/docs.xml 
Nov 05, 2015 11:46:02 AM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/host-manager.xml 
Nov 05, 2015 11:46:02 AM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/examples.xml 

我希望看到这样的事情我admin.xml后描述符被部署为:

[INFO] ioc.RegistryBuilder Adding module definition for class com.myotherdomain.admin.services.AppModule 
[INFO] TapestryModule.ComponentClassResolver Available pages (16): 

......但相反有沉默。在两个应用程序中我看不到任何不同的东西,这会导致一个人工作,另一个人失败。我应该在哪里看?

回答

1

DevLoader类路径错误。解决所有问题。

DevLoader类路径不包括路径/myapp/target/classes - 这就是我的应用程序的AppModule(确切地说是/myapp/target/classes/com/mydomain/myapp/services/AppModule.class)。这可以在Project -> Properties -> Tomcat中修复并检查正确路径的复选框。错误的配置也可以在项目WEB-INF.#webclasspath)旁边的文件中看到,该文件阐述了完整路径(相对路径显示在配置页面中)。修复安装程序后,启动Tomcat并.#webclasspath应自动更新。

相关问题