On 22/02/19 12:46, Martin Grigorov wrote:
On Fri, Feb 22, 2019 at 1:40 PM Matteo Alessandroni <[email protected]> wrote:On 22/02/19 12:28, Matteo Alessandroni wrote:On 22/02/19 10:31, Martin Grigorov wrote:On Fri, Feb 22, 2019 at 10:50 AM Matteo Alessandroni <[email protected]> wrote:On 21/02/19 18:50, Martin Grigorov wrote:On Thu, Feb 21, 2019, 18:29 Matteo Alessandroni <[email protected] wrote:On 21/02/19 16:43, Martin Grigorov wrote:On Thu, Feb 21, 2019 at 5:35 PM Matteo Alessandroni <[email protected]>wrote:On 21/02/19 16:30, Martin Grigorov wrote:On Thu, Feb 21, 2019 at 5:24 PM Matteo Alessandroni <[email protected]>wrote:On 21/02/19 16:07, Martin Grigorov wrote:On Thu, Feb 21, 2019 at 4:41 PM Matteo Alessandroni <[email protected]>wrote:On 21/02/19 12:14, Martin Grigorov wrote:On Thu, Feb 21, 2019 at 12:11 PM Matteo Alessandroni < [email protected]> wrote:Hi, On 21/02/19 11:05, Martin Grigorov wrote:When the WebSocket connection is established (maybe when thepageisloaded) you should see an entry in the Network tab. If you select this entry then on the right-side you should seeanyWSmessages to/from the server.Yes I know how about WS debugging, but I do not see any WSrequest(withWS devtool filter and without it).Maybe this is the problem. If there is no WebSocket response at all then there is no way theJScodeto be executed. But since your WebSocketBehavior callback method is executed thentheremust be an established WebSocket connection. I have no idea what goes wrong.It is strange because in our application version that uses Wicket7.xIsee no WS requests in DevTools console as well, but the code is correctly executed and everything works. Yes the WebSocket connection seems to be established anyway inbothourversions so with both Wicket 7.x and 8.x, but for some reason the "appendJavaScript()" method does not work on the "WebSocketRequestHandler" object with Wicket 8.x. Is there anything else we can try to make it work?Put a breakpoint athttps://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141and see whether it is called. And another one athttps://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java#L86to see whether the XML response is being written back to thebrowserintheWebSocketConnection.Thanks! Ok the first method [1] was called many times and once was the oneI'minterested on where the "script" variable was:"window.Wicket.WebSocket.send('{"kind":"ADD_ENDPOINT","target":"...","source":"...","scope":"..."}');"also the second one [2] was called, but *only once* and both the"text"and "binary" variables were null.What is the type of "response" variable athttps://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141? It seems it is not WebSocketResponseIdeed, it's "StringResponse"! And it's content is something like this:I didn't expect this! Can you please put a breakpoint at org.apache.wicket.response.StringResponse#StringResponse() (the constructor) and see where it is instantiated. AjaxRequestHandler uses StringResponse, but WebSocketRequestHandlerdoesnot.I'm not completely sure but it seems that all the times the application enters in [1] (including when "script" contains "addEnpoint(...)") and then the "StringResponse()" constructor is called, the source is [2]. [1]https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141[2]https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java#L360It seems WebSocketRequestHandler#respond() is not called at all. Put a breakpoint in AbstractWebSocketProcessor and see what happensthere. Hi, ok thanks, I did that and the constructor of "AbstractWebSocketProcessor" is never called!The constructor should be called when the WS connection is established. I guess you use wicket-native-websocket-javax. Check org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor and its org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor.StringMessageHandleronMessage() method is called when the client sends something to the server. onMessage() delegates to org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor#broadcastMessage()where the processing happens, i.e. WebSocketBehavior#onMessage() is called.Yes we use "wicket-native-websocket-javax" [1]. What I have just done is putting a breackpoint in both that method from"org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor#StringMessageHandleronMessage()" and"org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor#broadcastMessage()",but it does *not* enter there either. So at that point I have tried to start v2.0.x with Wicket 7.x and tried to debug the same way, the result is that it enters in [2] only. [1] https://github.com/apache/syncope/blob/2_1_X/client/console/pom.xml#L83 [2]https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/JavaxWebSocketProcessor.java#L65 Sorry I correct myself, I tried again with 2.1.x (Wicket 8.x) and it entered in [1] and [2]. [1] https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/JavaxWebSocketProcessor.java#L65 [2] https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java#L213Once the debugger is here set another breakpoint at https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java#L840 and https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java#L871 it seems something removes WebSocketRequestHandler from the pipeline and that's why its #respond() method is not executed.
Ok, it enters just a couple of times in [1] right after [2] and [3].[1] https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java#L840 [2] https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/JavaxWebSocketProcessor.java#L65 [3] https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java#L213
<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="id178" ><![CDATA[<span id="id178"> <div class="wizard-form"> <div id="id204"> <div class="wizard-overview"> </div> <div class="wizard-header"> <div> <div> <div class="wizard-step-title"> <div></div> </div> <div class="wizard-step-summary"> <div></div> </div> </div> </div> </div> <div class="wizard-view"> <div id="id207"> <span id="id226"> <span id="id227"> ...[1]https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141[2]https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java#L86ThanksWhat is the type of resourceCreateEvent.getTarget() ? Is it WebSocketRequestHandler or AjaxRequestHandler ?"resourceCreateEvent.getTarget()"type is "AjaxRequestHandler".[1]https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java#L602-L609On 21/02/19 10:01, Martin Grigorov wrote:Hi, Check the browser's Dev Tools' console for any JavaScripterrors.If there are no errors then check in the DevTools Network tabwhethertheWebSocket response frame contains the JS code in its body. Itmustbeinside <execution> XML element. If it is not there at allthenitmustbesomething on the server side. On Thu, Feb 21, 2019 at 10:54 AM Matteo Alessandroni <[email protected]>wrote:Hi, we have a logic where a websocket message is sent from an"onEvent()"method [1] and catched in a WebSocketBehavior class [2]. Then, a call to a js method "addEndpoint()"[3] must beexecuted.Our problem is that the js code "addEndpoint(...)" inside "handler.appendJavaScript(...)" [4] is not executed, so thecodecorrectly reaches that switch case but it's like the "appendJavaScript(...)" is not working. On our application v2.0.x that code works and it uses Wicket7.x,whilethe newer v2.1.x uses Wicket 8.x and it does not work. Could you please give us an hint of this? Is there anythingwearemissing to make it work for Wicket 8.x? Thank you! [1]https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java#L602-L609[2]https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyWebSocketBehavior.java#L153-L157[3]https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/resources/META-INF/resources/js/topology.js#L269-L280[4]https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyWebSocketBehavior.java#L154-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17> Tirasa S.r.l. <http://www.tirasa.net>
-- Dott. Matteo Alessandroni Software Engineer @ Tirasa S.r.l. Viale Vittoria Colonna, 97 - 65127 Pescara Tel +39 0859116307 / FAX +39 0859111173 http://www.tirasa.net Apache Syncope PMC Memberhttp://people.apache.org/phonebook.html?uid=skylark17 <http://people.apache.org/phonebook.html?uid=skylark17>
Tirasa S.r.l. <http://www.tirasa.net>
