Je moet wel de wereld en zijn moeder installeren om dit voor elkaar te krijgen. Oorspronkelijk was het mijn doel om eens wat meer te zien van Hadoop. Maar zover is het nog niet echt gekomen.
Mijn installatie, onder Windows 7 (maar wel laptop met Bang en Olufsen boxen!):
- Oracle Virtual Box;
- Ubuntu 14.04 server (standaard installatie zonder extra’s);
- FSharp voor Linux (zie optie 1, alleen het Ubuntu stukje);
En om een beetje lekker te kunnen werken:
- PuttY (als losse .exe opstarten);
- Open SSH (makkelijker dan een telnet server);
- Installeer Samba (filesharing) of een FTP server (tip: zoekmachine);
Je kunt de F# Interactive opstarten met het commando “fsharpi”. Die sluit je netjes weer af met “#quit;;”.
Maak een bestand “wcf.fsx” aan en kopieer daarin de volgende regels, en sla op:
#r "System.ServiceModel.Web.dll"
open System
open System.IO
open System.ServiceModel
open System.ServiceModel.Web
[<ServiceContract>]
type MyContract() =
[<OperationContract>]
[<WebGet(UriTemplate="{s}/{t}")>]
member this.Get(s:string, t:string) : Stream =
let html = sprintf @"
<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">
<html><head></head><body>Aangeroepen met '%s' en '%s'</body></html>" s t
upcast new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html))
let Main() =
let address = "http://localhost:64385/"
let host = new WebServiceHost(typeof<MyContract>, new Uri(address))
host.AddServiceEndpoint(typeof<MyContract>, new WebHttpBinding(), "") |> ignore
host.Open()
printfn "Server draait op: %s" address
printfn "Druk op een toest om af te sluiten"
System.Console.ReadKey() |> ignore
host.Close()
Main()
// Start IE en tik het volgende in:
// http://<server>:64385/functie/identifier
Browser is helaas belangrijk, start IE op en ga naar dit adres:
http://<server>:64385/functie/identifier
(servernaam kun je in linux opvragen met “hostname”)
Bij het afsluiten krijg je een exception, daar heb ik verder niet naar gekeken.
Credits voor het origineel