Error while adding servlet mapping --> /* Please set fileServingEnabled=false in

本文介绍了一种在部署Web应用时遇到的Servlet映射错误及其解决方案。错误提示建议设置fileServingEnabled为false,并提供了避免使用通配符映射的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[8/25/09 8:45:00:515 CST] 00000042 WebApp W Error while adding servlet mapping --> /* Please set fileServingEnabled=false in the ibm-web-ext.xmi file which is under WEB-INF folder.
[8/25/09 8:45:00:531 CST] 00000042 VirtualHost I SRVE0250I: Web Module has been bound to default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443,*:9081,*:9082].

解决办法:不映射到/*,映射到如/ws/*就没问题了。

<div data-v-4c755c92="" class="cool-video-wrapper"><div id="course-player" class="cool-player mobile aliplayer prism-player" x5-playsinline="" x-webkit-airplay="" playsinline="" webkit-playsinline="" style="width: 100%; height: 100%;"><video webkit-playsinline="" playsinline="" x-webkit-airplay="allow" x5-playsinline="" preload="preload" autoplay="autoplay" src="blob:https://nsxy1862.coolcollege.cn/e64c3025-8896-4ddf-82cc-894472da3d30" poster="https://oss.coolcollege.cn/1815458882630324224.png" x5-video-player-type="h5" style="width: 100%; height: 100%;"></video> <div class="cool-player-video-wrap"> <div class="cool-player-mask"> <!-- 视频加载loading --> <div class="cool-player-marker" style="display: none;"> <div class="loading"> <div class="rotate"></div> </div> </div> <!-- 中间的大播放按钮 --> <div class="cool-player-center" style="display: none;"> <span class="cool-player-big-play-btn"></span> <span class="cool-player-play-duration" style="display: none;"></span> </div> <!-- 视频手势拖动 显示的动态时间 --> <div class="cool-player-toast-progress"></div> <div class="cool-player-controller" style="visibility: hidden;"> <div class="controller"> <div class="controller-draggable-tips">视频未播放完,暂不允许快进</div> <div class="controller-button pause" style="display: inline-block;"></div> <div class="controller-button play" style="display: none;"></div> <!-- 当前时间 --> <div class="cool-player-current-time">01:59</div> <!-- 进度条 --> <div class="cool-player-progress"> <div class="progress-bar"> <div class="bar-buffered" style="width: 100%;"></div> <div class="progress-ball" style="left: 75.1511%;"> <div class="progress-inner"></div> </div> </div> </div> <!-- 总时长 --> <div class="cool-player-duration">02:38</div>把这个视频用ffmpeg.下载下来
最新发布
05-07
要使用 FFmpeg 下载 HTML5 视频,尤其是当视频源是一个 `blob:` URL 或其他动态生成的内容时,通常需要先找到实际的媒体片段(通常是 `.mp4` 文件或其他格式)。以下是详细的解决方案: --- ### 方法一:通过分析网络请求获取真实地址并下载 如果目标页面中的 `<video>` 元素指向的是一个 `blob:` URL,则说明该视频可能是由 JavaScript 动态加载到内存中的。此时可以通过开发者工具捕获真实的媒体流地址。 #### 步骤解析: 1. 打开浏览器的开发者工具(F12),切换到 **Network** 面板。 2. 加载页面并播放视频,观察是否有新的媒体文件被请求(如 `.mp4`, `.ts`, `.m3u8` 等)。 3. 记录下这些媒体文件的真实 URL 地址。 4. 使用 FFmpeg 命令行工具下载和处理视频。 #### 示例代码: 假设发现了一个有效的 MP4 流地址为 `http://example.com/video.mp4`,则可以直接运行以下命令来下载它: ```bash ffmpeg -i http://example.com/video.mp4 -c copy output.mp4 ``` 此操作会将远程服务器上的视频保存为本地文件 `output.mp4`,并且不会重新编码以节省时间[^1]。 --- ### 方法二:利用 Media Source Extensions (MSE) 某些现代网站可能采用 MSE 技术分片传输视频数据,在这种情况下,单个完整的视频文件不存在于任何地方;而是分成多个小部分存储在网络缓存或者临时目录里。为了应对这种情况,可以尝试手动拼接所有的 TS 片段或将它们转换成单一文件形式。 #### 实现方式: 借助前面提到的方法提取所有必要的 ts 分割单元之后,再执行类似这样的脚本完成最终组装工作: ```javascript // 参考引用 [^2] const video = document.querySelector('video'); if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) { const mediaSource = new MediaSource(); video.src = URL.createObjectURL(mediaSource); mediaSource.addEventListener('sourceopen', sourceOpen); function sourceOpen() { let sourceBuffer; try{ sourceBuffer = mediaSource.addSourceBuffer(mimeCodec); // Fetch and append each segment to the buffer... fetchAndAppendSegment(sourceBuffer, 'init.mp4'); // Initialization Segment for(let i=1;i<=5;i++) { // Append subsequent segments fetchAndAppendSegment(sourceBuffer, `video${i}.mp4`); } mediaSource.endOfStream(); // Signal that we're done adding data. }catch(error){ console.error("Error while appending buffers:", error.message); } } } else { console.error('Unsupported MIME type or codec: ', mimeCodec); } function fetchAndAppendSegment(buffer, url) { fetch(url).then(response => response.arrayBuffer()).then(data => { buffer.appendBuffer(data); }).catch(err=>console.warn(`Failed loading ${url}`, err)); } ``` 一旦获得了全部的数据包集合,就可以调用 FFmpeg 来进一步加工成品影片了。 --- ### 方法三:对于已分割好的 HLS/DASH 类型内容 如果是基于 HTTP Live Streaming(HLS) 协议构建的服务端推送机制的话,那么很可能存在一份清单文档(.m3u8),里面列出了构成整个节目序列的一系列短时间段影音资料的位置指示符。针对这类情形下的抓取流程如下所示: #### M3U8 清单示例: ```plaintext #EXTM3U #EXT-X-TARGETDURATION:10 #EXTINF:9.77, https://www.example.com/mediafile1.ts #EXTINF:9.77, https://www.example.com/mediafile2.ts #EXT-X-ENDLIST ``` #### 对应的 FFmpeg 指令: 只需指定 m3u8 列表作为输入即可自动拉取关联资源并合成完整版本: ```bash ffmpeg -protocol_whitelist file,http,https,tcp,rtp -i https://www.example.com/stream.m3u8 -c copy output.mp4 ``` 这里需要注意添加 `-protocol_whitelist` 参数允许访问外部协议链接以防遇到权限错误[^3]. --- ### 总结注意事项 - 如果面对的是简单的直接链接(mp4/ts/mkv etc.),可直接运用基本语法; - 若涉及复杂的按需渐进式加载模式(Dynamic Adaptive Streaming over HTTP,DASH),HLS等情况,则需深入挖掘内部结构细节后再行动作; - 不管哪种情况都建议事先验证目标平台是否许可此类行为以免触犯版权法规等问题. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值