让我先说一下我所知道的关于 Spring 和 Jetty 的一切,我在尝试调试这个问题的过程中学到的:我在战争中有一个上下文文件,它只是设置身份验证管理器和 http -基本的安全模型。一台计算机,它工作正常,但在另一台计算机上——当然还有我试图部署到的计算机——码头的日志在尝试加载该文件后停止。
该文件没有做任何奇特的事情,只是几乎遵循网络上的每个示例,以便启动并运行 shell 以供以后改进:
<security:http>
<security:http-basic></security:http-basic>
<security:intercept-url pattern="/dcap" access="ROLE_ANONYMOUS"/>
<security:intercept-url pattern="/LCL/**" access="ROLE_ANONYMOUS"/>
<security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider>
<security:user-service>
<security:user name="test" password="testpass" authorities="ROLE_USER" />
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
现在,我玩弄了这个,如果我注释掉第一个块,我会得到相同的结果,如果我注释掉第二个块,我会得到相同的结果。但是,如果我注释掉这两个块,Jetty 实际上会启动,而不是在配置阶段挂起,而是抛出找不到 springSecurityFilterChain 的异常,这当然是有道理的。
所以,我想我的问题是,机器环境中可能存在哪些差异会导致该文件无法在一台机器上加载而在另一台机器上运行?(我担心可能是在它正在运行的机器上我使用的是sun jvm,而在我正在使用的机器上,我必须使用openjdk。)还有我可以采取的其他步骤吗像这样调试来自 Jetty 的启动日志停止的问题?