我正在使用 Tomcat 8.0.21 ,我使用Vintela在web.xml中定义了一个过滤器。 我使用本地用户(LOCALHOST / UserA)登录Windows(Server 2012)。 我为Tomcat创建 Windows服务,从域用户登录(DOMAIN / UserB)开始,
但是当我启动它时,Tomcat无法启动我的过滤器:
SEVERE: Exception starting filter authFilter
java.lang.IllegalArgumentException: The resource path [vsj.properties] is not valid
at org.apache.catalina.webresources.StandardRoot.validate(StandardRoot.java:250)
at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:212)
at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:206)
at org.apache.catalina.core.ApplicationContext.getResourceAsStream(ApplicationContext.java:579)
at org.apache.catalina.core.ApplicationContextFacade.getResourceAsStream(ApplicationContextFacade.java:210)
at com.wedgetail.idm.sso.AbstractAuthenticator.getResource(AbstractAuthenticator.java:2107)
at com.wedgetail.idm.sso.AbstractAuthenticator.getPropsFromFile(AbstractAuthenticator.java:2069)
at com.wedgetail.idm.sso.AuthFilter.init(AuthFilter.java:129)
at com.myfilter.MyFilter.init(MyFilter.java:59)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4573)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5192)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1096)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1756)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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:812)
(&#39; vsj.properties&#39;不存在(对Vintela来说是可选的))
但是,如果我使用当前的本地用户会话手动启动Tomcat(startup.bat),那么它可以正常工作(?!)。
为什么?
行为会有所不同,具体取决于服务是使用DOMAIN用户启动还是手动使用本地用户....
谢谢,
N.B。 :我已经阅读http://mail-archives.apache.org/mod_mbox/cxf-users/201410.mbox/
了答案 0 :(得分:0)
经过一些调查和调试后,我对域用户或本地用户都有相同的错误。
我的错误是没有在控制台上看到错误:(
但是现在要解决我的问题,我设置Tomcat 8的新(系统)属性,如果资源文件名不是格式良好,则返回 null 而不是一个java异常:
org.apache.catalina.core.ApplicationContext.GET_RESOURCE_REQUIRE_SLASH=true
现在Vintela工作......