Run scout server standalone? [message #1404257] |
Wed, 30 July 2014 13:19  |
Eclipse User |
|
|
|
I was wondering since Scout is OSGi based, why not run the server as a "standalone" (by using equinox ofc) similarily to how the clients run. This should work, no? I imagine Eclipse does something like this when you run/debug the server.
Any way to export the server and run in the way it does in Eclipse since I've had nothing but trouble trying to deploy the war?
|
|
|
|
|
|
|
|
Re: Run scout server standalone? [message #1429797 is a reply to message #1429631] |
Tue, 23 September 2014 15:28   |
Eclipse User |
|
|
|
What I mean by standalone is that I am using maven to build the project, but I do not build it as a war. I take the folder and run equinox launcher the same way you do for client - and I do just that for scout server and RAP server. Everything runs fine on Scout Server. RAP server has problems communicating with the server though and I am not sure what is triggering these exceptions. Yes, I am running both servers like in figure 3 (http://media.techtarget.com/tss/static/articles/content/EclipseEquinoxOSGi/clip_image006.gif).
message #1404342 - RAP client error message
message #1404570 - fro Scout Server log (no error!)
message #1429566 - RAP server log, first is normally, second is when I removed a call to CODES.getAllCodeTypes(...) on the client
I am quite sure config is not a problem, I have used tcpflow (sudo tcpflow -i any -C -e port 8887) to listen in on the traffic and I got one request/Response:
POST /x_server/ajax HTTP/1.1
Content-type: text/xml
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.8.0_05
Host: localhost:8887
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-Length: 1639
<soapenv:Envelope soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
<soapenv:Header><wsse:Security soapenv:mustUnderstand="1"> <wsse:UsernameToken> <wsse:Username>anonymous</wsse:Username> <wsse:Password Type="http://scout.eclipse.org/security#Base64">yRT2AwchbZQb6DEmbuzeaUb6EWEWfFCk</wsse:Password> </wsse:UsernameToken></wsse:Security></soapenv:Header>
<soapenv:Body>
<request version="null" compressed="true" locale="sl" service="org.eclipse.scout.rt.shared.services.common.code.ICodeService" operation="getAllCodeTypeClasses"/>
<data>eAGNUztvFDEQNonyIEHKJQgkRLMFRVLEt5c7jhUnHiHhcXAkUS5IJ1Isjndu4+Bdb2zvsYmidPQ0ICEhQUEHoqEA8RcQtPwJkCihAu/jQtJhrdb2zDee+b6x3/5AQ0qiy0L6GChnkQKsqIg1lhqrTSLBwwpkj1HQcRgCx+18t5btVmE7BqVRMQbQ+G00GbgyN7fTKaSwjoYDl0jfAE+ut7ZIj5Q5Cf3y8sYWUN1ooTOBS0Wo4gC8JaFZl1GimQibnomYyANizXi5DSl6NHC5oISDRlOHnK3MZvxjgRuAJotEkwPE0XzjgSsikFmSo5C2liz0G+uoFLgRkcQcBHJtJ0pJTh2ufYETpUyys4Fb6NMMDbRLKGSuJRO6jfbRUAuZbLHBzPsQ6sJ0PHB7IJXhWBimjIFJHRPeBpXam17mSaJC2rFY9sXDKRlciPfka+dlSc3wAYQy7DGNpqkIsGKJxhyIMnQwFz5TmtGiUlV01jR+Mu0GTsXFt4jaNAJ/Wnz89NnHD7XB9MBHJ0z60pWreRGJCSj9C8gF3/81+eCF/fv7IBpuotFNcwgVHrTQiLlFoZY7BcExSDSEKTNVWEZTGjHx+zINKypZ1FdopEckI4VgSfTHDHPN0tAJjQYUz1bZL4k0OuWDnud8wWROm5V1AJSRrOhZLlneszenv737/OX+8wPFen1Wma75DXj187Wz23h/LQNpdOk/3ofCRvdAhGbyADfTWoq3olFndX5lb/F6+87a8sreXbHLOCfl89i2pjuVSsO6t2GkihtWi4VxYiVO3a3XGpbsXaza2J6xbgJ9KMpzdsU2X8W6wSR0RVJOnYb7uQqxqXOha8+Serc6W3PmiFk59qznONValULdq9h/AeFPSDY=</data>
<info origin="127.0.1.1"/>
</soapenv:Body></soapenv:Envelope>
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=qncjxkgxw3h53nnwy1mr6r4q;Path=/logisticservices_server
Expires: Wed, 31 Dec 1969 23:59:59 GMT
Cache-Control: no-cache
pragma: no-cache
Content-Type: text/xml
Content-Length: 1423
Server: Jetty(8.1.14.v20131031)
<soapenv:Envelope soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<response status="ERROR" compressed="true">
<exception type="VersionMismatchException">Version mismatch: got 0.0.0 required 1.0.0</exception>
</response>
<data>eAGVVM9P1EAY/XbZBQSFVcCoEdz4MyGmlURDcIlGBJM1BY2LXEhshu64FDttmZnuLh6MXryQqAc9ePA/4GriH2D0gAdj4lkPHvXsRRK/mZbuEkzUbrJNO9+8ee977+vGD8gLDpcDXjOo47mhoIZwgkgaXBpimXBaNQTlddehMvJ96hmV+GleP92iIgx8QSG5stBpwRCzEYn6ci6Q7l3XIdLFGgn91gqpEzOSrmdWqCxZ0MnsKpFEwoF4ySN+zbyxtEIdtdrLbNp0aKi2SxhqK5lf5kGDLHkUq3qYzagk04izCg8guwh7mI0CFgjHMwcW27alyIPMDnngUCFcvzYdcc1QQqGt1gr8WqkZhiF2Z+rfu7NAuUC6s65gRDrLM9v8k/5kspC1YC+zfdpISneKr0iOlFAW1gReNalRwrqbHMZ3E3ECxrC7Rtop42aq7A+nZyzoZrbAnkfYnXELAc3Ed1P7biaAZgpolluIFb2xhFQGlJeGMsxIj/m4dezSkdLRt1mAnRWpX5/fXTgz0Xiz2QE5C/IOiQRV2jos2FdFE11vFj0hNf2yexF6kKhzb54TTB+MtFuJRJKFGY8yzBq2bFBEYcgRgFZTSigycVXHznKFVK5KGE1aW2SJVReLtUAWzxn4K3K6GrkY/eKYeoz49tmx3t1nZ6+NTk5uHZ9QwkNlNYbmtG6QOtW4GngeRlpNwcnbPguqOBUqvYrNr/5TY6+/PylkAa3JefhGNaQP+3f27wAt4MNT8HDzzs8RDZNxJByMs6xVt8pQO1KLvdPUrnBO1hSP5qNPwy/fk1cdkClDTrj3aaykkVN6morUoSbuPf9/EYwDoyDwwvR3ldXQO0GVltXkClqn3JVrFnTh27Y47FdFvqRNmSQCjUy+AFpSyht9x3lnbbHRCQ+9qOb6em40tnSlF6cqloVscmq1P1T/BQmAmchru/GuU6BHv68Vc/1FWP/27MPTE1+wzdchXydeRNGpQqtoLmJLlD/eeDHc+/zrepoHpf43l0bKrw==</data>
<info origin="127.0.1.1"/>
</soapenv:Body></soapenv:Envelope>
Now I started RAP Server using Eclipse and checked the request, the very apparent difference is here:
<request version="1.0.0.qualifier" ...
compared to the request from broken build:
So the Tycho RAP Server is not providing a version in its SOAP requests. Hum, now the question is where does that version come from? I will keep digging a bit longer, maybe I can figure it out.
EDIT: So I guess I found it.. version is set in ClientSession class, when ServiceTunnel is initialized
Changed
setServiceTunnel(new ClientHttpServiceTunnel(this, UriUtility.toUrl(getBundle().getBundleContext().getProperty("server.url"))));
to this
setServiceTunnel(new ClientHttpServiceTunnel(this, UriUtility.toUrl(getBundle().getBundleContext().getProperty("server.url")), "1.0.0"));
The only question that remains now is from the documentation - "If the version parameter is null, the product bundle (for example com.myapp.ui.swing) version is used" - so I guess something is wrong in my set-up and the version does not get detected or is not present. Maybe because I am not using the entire assembly process. Oh well, but at least it works now Thanks for the time and sorry if I spammed too much.
[Updated on: Tue, 23 September 2014 16:10] by Moderator
|
|
|
|
|
Re: Run scout server standalone? [message #1442232 is a reply to message #1430146] |
Fri, 10 October 2014 16:42  |
Eclipse User |
|
|
|
Hi Nejc
The Version Mismatch error you encounter is a general mechanism to prevent old clients from connecting to the Scout server. And the RAP server acts as a client to the Scout server. You already figured out that the client sets its request version on the service tunnel during session initialization. See DefaultTransactionDelegate.invokeImpl() for the server side part of this feature, here the version check is performed and the respective exception is thrown.
By default the client retrieves its version string through a call to Platform.getProduct().getDefiningBundle().getHeaders().get("Bundle-Version") (see constructor of AbstractServiceTunnel). This call usually resolves to the Bundle-Version in the MANIFEST.MF file of your UI-Bundle (e.g. com.myapp.ui.rap).
One possibility that this version lookup fails is a missing "product" in your exported eclipse application. The product needs to be explicitly specified such that it is known at runtime. A good place is the config.ini file. Check the config.ini file of your exported RAP server, it should define the eclipse.product property. Add it, if it is missing. Example:
eclipse.product=com.myapp.ui.rap.product
Lukas
|
|
|
Powered by
FUDForum. Page generated in 0.08257 seconds