我正在将SNI与带有webAppContext的嵌入式Jetty一起使用。在大多数情况下,这很好。我已切换到Jetty的9.4.8版本。
就SNI而言,该服务启动正常,可以正确加载所有内容并读取所有证书。但是,当我从多个浏览器发出涉及资源路径上的JS和图像文件的特定请求时,浏览器抱怨没有为这些文件定义GET
,但是引用/获取使用{{ 1}}。
以下代码在Jetty的早期版本中工作正常,但现在不起作用。 Jetty 9.4.8是否更改了解决相对引用的方式。
任何想法都会受到赞赏。
Jetty代码(到目前为止已经工作了多年)
@RequestMapping
现在失败的html片段是
WebAppContext webAppContext = new WebAppContext();
Resource webappDir = Resource.newResource(System.getProperty("traffic.app.dir"));
webAppContext.setBaseResource(webappDir);
webAppContext.setDescriptor("WEB-INF/web.xml");
webAppContext.setContextPath("/");
webAppContext.setParentLoaderPriority(false);
webAppContext.setLogUrlOnStart(true);
资源路径为<script type="text/javascript" src="/js/spin.js"></script>
错误是
file:///f/f2-traffic/webapp/
Loading failed for the <script> with source “http://test2:8000/tools/js/spin.js”.
所有发生此操作的页面的网址为405 Request method 'GET' not supported.
更新
在web.xml文件中,我有以下内容
http://test2:8000/tools/tsub
这是个问题吗?
答案 0 :(得分:0)
@joakimerdfelt因此,在完成许多拔头发工作后,我已经解决了我的问题。
在解决此问题的过程中,我添加了一个新的Controller
来处理对/ js / ,/ images / 等的“默认”引用,并认为至少会进行修补问题。没有。
经过一番努力,事实证明,两年前有人为该软件的较旧版本添加了映射(显然没有)。我删除了这些映射并添加了安全性配置,以在获取该类型的文件时不应用任何安全性。安全性适用于所有其他参考。我删除了Controller
,因此将完成默认处理,并且……所有工作都按照应有的方式开始。
感谢所有建议。