java.lang.IllegalArgumentException:资源路径[vsj.properties]无效

时间:2015-08-13 09:06:53

标签: java tomcat windows-services

我正在使用 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/

1 个答案:

答案 0 :(得分:0)

经过一些调查和调试后,我对域用户或本地用户都有相同的错误。

我的错误是没有在控制台上看到错误:(

但是现在要解决我的问题,我设置Tomcat 8的新(系统)属性,如果资源文件名不是格式良好,则返回 null 而不是一个java异常:

org.apache.catalina.core.ApplicationContext.GET_RESOURCE_REQUIRE_SLASH=true

现在Vintela工作......