On Fri, Feb 22, 2019 at 1:40 PM Matteo Alessandroni <skylar...@apache.org> 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 > >> <skylar...@apache.org> > >> wrote: > >> > >>> > >>> On 21/02/19 18:50, Martin Grigorov wrote: > >>>> On Thu, Feb 21, 2019, 18:29 Matteo Alessandroni <skylar...@apache.org > > > >>>> wrote: > >>>> > >>>>> On 21/02/19 16:43, Martin Grigorov wrote: > >>>>>> On Thu, Feb 21, 2019 at 5:35 PM Matteo Alessandroni < > >>>>> skylar...@apache.org> > >>>>>> wrote: > >>>>>> > >>>>>>> On 21/02/19 16:30, Martin Grigorov wrote: > >>>>>>>> On Thu, Feb 21, 2019 at 5:24 PM Matteo Alessandroni < > >>>>>>> skylar...@apache.org> > >>>>>>>> wrote: > >>>>>>>> > >>>>>>>>> On 21/02/19 16:07, Martin Grigorov wrote: > >>>>>>>>>> On Thu, Feb 21, 2019 at 4:41 PM Matteo Alessandroni < > >>>>>>>>> skylar...@apache.org> > >>>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> On 21/02/19 12:14, Martin Grigorov wrote: > >>>>>>>>>>>> On Thu, Feb 21, 2019 at 12:11 PM Matteo Alessandroni < > >>>>>>>>>>>> matteo.alessandr...@tirasa.net> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>>> Hi, > >>>>>>>>>>>>> > >>>>>>>>>>>>> On 21/02/19 11:05, Martin Grigorov wrote: > >>>>>>>>>>>>>> When the WebSocket connection is established (maybe when the > >>> page > >>>>>>> is > >>>>>>>>>>>>>> loaded) you should see an entry in the Network tab. > >>>>>>>>>>>>>> If you select this entry then on the right-side you > >>>>>>>>>>>>>> should see > >>>>> any > >>>>>>> WS > >>>>>>>>>>>>>> messages to/from the server. > >>>>>>>>>>>>> Yes I know how about WS debugging, but I do not see any WS > >>> request > >>>>>>>>> (with > >>>>>>>>>>>>> WS devtool filter and without it). > >>>>>>>>>>>>> > >>>>>>>>>>>> Maybe this is the problem. > >>>>>>>>>>>> If there is no WebSocket response at all then there is no > >>>>>>>>>>>> way the > >>>>> JS > >>>>>>>>> code > >>>>>>>>>>>> to be executed. > >>>>>>>>>>>> > >>>>>>>>>>>> But since your WebSocketBehavior callback method is > >>>>>>>>>>>> executed then > >>>>>>> there > >>>>>>>>>>>> must be an established WebSocket connection. > >>>>>>>>>>>> I have no idea what goes wrong. > >>>>>>>>>>> It is strange because in our application version that uses > >>>>>>>>>>> Wicket > >>>>> 7.x > >>>>>>> I > >>>>>>>>>>> see 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 in > >>> both > >>>>>>> our > >>>>>>>>>>> versions 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 at > >>>>>>>>>> > >>> > https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141 > >>> > >>>>>>>>>> and see whether it is called. > >>>>>>>>>> And another one at > >>>>>>>>>> > >>> > 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#L86 > >>> > >>>>>>>>>> to see whether the XML response is being written back to the > >>> browser > >>>>> in > >>>>>>>>> the > >>>>>>>>>> WebSocketConnection. > >>>>>>>>> Thanks! > >>>>>>>>> Ok the first method [1] was called many times and once was the > >>>>>>>>> one > >>> I'm > >>>>>>>>> interested 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 at > >>>>>>>> > >>> > https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141 > >>> > >>>>>>>> ? > >>>>>>>> It seems it is not WebSocketResponse > >>>>>>> Ideed, 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 WebSocketRequestHandler > >>> does > >>>>>> not. > >>>>> 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#L360 > >>> > >>>> It seems WebSocketRequestHandler#respond() is not called at all. > >>>> Put a breakpoint in AbstractWebSocketProcessor and see what happens > >>> there. > >>> > >>> 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.StringMessageHandler > >> onMessage() 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#StringMessageHandler > > onMessage()" 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#L213 Once 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. > > > > > >> > >> > >>>> > >>>> > >>>>>>> <?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#L86 > >>> > >>>>>>>>>>> Thanks > >>>>>>>>>>> > >>>>>>>>>>>>>> What 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-L609 > >>> > >>>>>>>>>>>>>>> On 21/02/19 10:01, Martin Grigorov wrote: > >>>>>>>>>>>>>>>> Hi, > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Check the browser's Dev Tools' console for any JavaScript > >>>>> errors. > >>>>>>>>>>>>>>>> If there are no errors then check in the DevTools > >>>>>>>>>>>>>>>> Network tab > >>>>>>>>> whether > >>>>>>>>>>>>> the > >>>>>>>>>>>>>>>> WebSocket response frame contains the JS code in its > >>>>>>>>>>>>>>>> body. It > >>>>>>> must > >>>>>>>>> be > >>>>>>>>>>>>>>>> inside <execution> XML element. If it is not there at all > >>> then > >>>>> it > >>>>>>>>>>> must > >>>>>>>>>>>>> be > >>>>>>>>>>>>>>>> something on the server side. > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On Thu, Feb 21, 2019 at 10:54 AM Matteo Alessandroni < > >>>>>>>>>>>>>>> skylar...@apache.org> > >>>>>>>>>>>>>>>> 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 be > >>>>> executed. > >>>>>>>>>>>>>>>>> Our problem is that the js code "addEndpoint(...)" inside > >>>>>>>>>>>>>>>>> "handler.appendJavaScript(...)" [4] is not executed, > >>>>>>>>>>>>>>>>> so the > >>>>> code > >>>>>>>>>>>>>>>>> correctly 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 > >>>>>>>>>>>>>>>>> Wicket > >>>>>>> 7.x, > >>>>>>>>>>>>> while > >>>>>>>>>>>>>>>>> the newer v2.1.x uses Wicket 8.x and it does not work. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Could you please give us an hint of this? Is there > >>>>>>>>>>>>>>>>> anything > >>> we > >>>>>>> are > >>>>>>>>>>>>>>>>> missing 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> >