Java 启动过滤器WebSocket过滤器netbeans 7.3 glassfish 4时出现异常

Java 启动过滤器WebSocket过滤器netbeans 7.3 glassfish 4时出现异常,java,websocket,netbeans-7.3,java-ee-7,glassfish-4,Java,Websocket,Netbeans 7.3,Java Ee 7,Glassfish 4,我正在尝试使用JavaWebSocket api在两个html页面之间实现简单的视频传输。 网络摄像头服务器捕获网络摄像头并发送到服务器端点,该端点向每个连接的客户端广播。 网络摄像头服务器代码 <video autoplay id="vid" style="display: none;"></video> <canvas id="canvas" width="640" height="480" style="border: 1px solid #d3d3d

我正在尝试使用JavaWebSocket api在两个html页面之间实现简单的视频传输。 网络摄像头服务器捕获网络摄像头并发送到服务器端点,该端点向每个连接的客户端广播。 网络摄像头服务器代码

<video autoplay id="vid" style="display: none;"></video>
    <canvas id="canvas" width="640" height="480" style="border: 1px solid #d3d3d3;"></canvas>
    <div id="data1"></div>
    <script>
           var video = document.querySelector("#vid");
           var canvas = document.querySelector('#canvas');
           var ctx = canvas.getContext('2d');
           var localMediaStream = null;
           var ws = new WebSocket("ws://127.0.0.1:8080/WebApplication5/endpointwcv");
           ws.onopen = function () {
                console.log("Openened connection to websocket");
            };
            ws.onerror = function (evt) {
                writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
            };
           var onCameraFail = function (e) {
                console.log('Camera did not work.', e);
            };
            timer = setInterval(function () {
                              ctx.drawImage(video, 0, 0, 640, 480);
                              var data = canvas.toDataURL('image/jpeg', 1.0);
                              ws.send(data);
                              }, 255);

           navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
           window.URL = window.URL || window.webkitURL;
           navigator.getUserMedia({ video: true }, function (stream) {
                video.src = window.URL.createObjectURL(stream);

}, onCameraFail);


我发现您的项目存在一些问题。首先,Struts和WebSocket之间存在URL映射重叠。您的WebSocket URL是
/endpointwcv
。Struts映射是
/*
。当我最终部署了你的应用程序时,我从Struts那里得到了错误,关于如何没有动作的映射
/endpointwcv

如果您将Struts筛选器servlet的映射更改为
/Struts/*
(并且我必须将
筛选器类更改为
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
,以避免有关如何弃用
FilterDispatcher
的错误消息),您可以通过转到
http://localhost:8080/WebApplication5/Conference.html
。在GlassFish4 server.log中,我看到了来自
NewWSEndpoint
的输出:

INFO: aaaa
INFO: error
INFO: error
INFO: error
...
INFO: Closed
转到
http://localhost:8080/WebApplication5/ConferenceClient.html
,我在server.log中看到:

INFO: aaaa

我不是Struts专家,但看起来您需要修复端点,然后找出如何实现Struts前端,这样它就不会干扰您的WebSocket端点URL。

我发现您的项目存在一些问题。首先,Struts和WebSocket之间存在URL映射重叠。您的WebSocket URL是
/endpointwcv
。Struts映射是
/*
。当我最终部署了你的应用程序时,我从Struts那里得到了错误,关于如何没有动作的映射
/endpointwcv

如果您将Struts筛选器servlet的映射更改为
/Struts/*
(并且我必须将
筛选器类更改为
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
,以避免有关如何弃用
FilterDispatcher
的错误消息),您可以通过转到
http://localhost:8080/WebApplication5/Conference.html
。在GlassFish4 server.log中,我看到了来自
NewWSEndpoint
的输出:

INFO: aaaa
INFO: error
INFO: error
INFO: error
...
INFO: Closed
转到
http://localhost:8080/WebApplication5/ConferenceClient.html
,我在server.log中看到:

INFO: aaaa

我不是Struts专家,但看起来您需要修复端点,然后找出如何实现Struts前端,这样它就不会干扰您的WebSocket端点URL。

这些错误已被删除,但我无法广播它们。。。这些错误已被删除,但我无法广播它们。。。
INFO: aaaa
INFO: error
INFO: error
INFO: error
...
INFO: Closed
INFO: aaaa