BTW, I already tried the following workaround without success:

I did override WebSocketBehavior#renderHead and included a „patched“ JS init 
script that contained the contextPath that ngnix is forwarding to, so the 
generated JS looked like this:

if (typeof(Wicket.WebSocket.appName) === "undefined") {
  jQuery.extend(Wicket.WebSocket, { pageId: 1, resourceName: '',
    baseUrl: ‚MyHomePage?1', contextPath: ‚/MyLocation', appName: ‚myApp',
    filterPrefix: '' });
  Wicket.WebSocket.createDefaultConnection();
}

But still I got an 404 for the ws endpoint …

   Tom


> On 05.10.2016, at 17:35, Tom Götz <[email protected]> wrote:
> 
> I created a JIRA for this: https://issues.apache.org/jira/browse/WICKET-6254
> 
>   Tom
> 
> 
>> On 05.10.2016, at 17:31, Martin Grigorov <[email protected]> wrote:
>> 
>> The problem is that Nginx is configured to forward requests to /MyLocation
>> to Tomcat, and the application has no idea about this.
>> 
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>> 
>> On Wed, Oct 5, 2016 at 5:25 PM, Tom Götz <[email protected]> wrote:
>> 
>>> Hi Martin,
>>> 
>>> what exactly is the problem in wicket-websocket-jquery.js? As I said, I
>>> have no contextPath, so I wouldn’t expect Wicket/wicket-websocket-jquery.js
>>> to know under which context the app is running. Shouldn’t I provide the
>>> context/mountPath somehow to the websocket initialization process?!
>>> 
>>>  Tom
>>> 
>>>> On 05.10.2016, at 16:47, Martin Grigorov <[email protected]> wrote:
>>>> 
>>>> Hi Tom,
>>>> 
>>>> The problem really is in wicket-websocket-jquery.js.
>>>> It does: url = protocol + '//' + document.location.host +
>>> WWS.contextPath +
>>>> WWS.filterPrefix + '/wicket/websocket';
>>>> 
>>>> A workaround for you is to add url rewrite rule to Nginx to forward it to
>>>> Tomcat.
>>>> 
>>>> Please file an issue at JIRA and I'll see how this could be improved.
>>>> 
>>>> 
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>> 
>>>> On Wed, Oct 5, 2016 at 4:31 PM, Tom Götz <[email protected]> wrote:
>>>> 
>>>>> Hm, no solution yet … anyone got a working example or some hint maybe?
>>>>> 
>>>>> Tom
>>>>> 
>>>>> 
>>>>>> On 05.10.2016, at 15:57, Tom Götz <[email protected]> wrote:
>>>>>> 
>>>>>> Maybe answering my own question, but this here could help … I’ll give
>>> it
>>>>> a try:
>>>>>> http://stackoverflow.com/questions/32287103/how-to-use-
>>>>> nginx-as-a-proxy-for-wicket-application-using-websockets
>>>>>> 
>>>>>> Cheers,
>>>>>> Tom
>>>>>> 
>>>>>> 
>>>>>>> On 05.10.2016, at 15:36, Tom Götz <[email protected]> wrote:
>>>>>>> 
>>>>>>> Hi there,
>>>>>>> 
>>>>>>> I have the following scenario:
>>>>>>> 
>>>>>>> 1.
>>>>>>> a Spring-Boot Wicket application with Tomcat running on Port 8080 that
>>>>> uses Wicket WebSockets impl running in the servlet root context
>>>>>>> 
>>>>>>> 2.
>>>>>>> a ngnix server that proxies /MyLocation to the mentioned Wicket app
>>>>>>> 
>>>>>>> As there is no servlet context involved, the generated WebSockets
>>>>> endpoint url is generated by Wicket as: ws://mydomain.com/wicket/
>>>>> websocket?pageId=1&wicket-ajax-baseurl=...
>>>>>>> 
>>>>>>> I saw that this url is generated in BaseWebSocketBehavior#renderHead
>>>>> by asking the request for the context path:
>>>>>>> 
>>>>>>> String contextPath = component.getRequest().getContextPath();
>>>>>>> variables.put("contextPath", contextPath);
>>>>>>> 
>>>>>>> As I don’t have a contextPath, this fails:
>>>>>>> 
>>>>>>> WebSocket connection to 'ws://mydomaon.com/wicket/
>>>>> websocket?pageId=1&wicket-ajax-baseurl=...' failed: Error during
>>>>> WebSocket handshake: Unexpected response code: 404
>>>>>>> 
>>>>>>> Does the Wicket WebSocket API provide a way to handle such a scenario?
>>>>> Currently, I’m studying the code but any pointer would be helpful …
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> Tom
>>>>> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to