!!! Listing 1: Moduldatei GlueckskeksRPC.gwt.xml
!!! Listing 2: GlueckskeksRPC.html
Glückskeks-Botschaft:
!!! Listing 3: Die Klasse GluekcskeksRPC
!!! Listing 3: Die Klasse GlueckskeksRPC
public class GlueckskeksRPC implements EntryPoint {
final Label processingLabel = new Label("Status: Ready.");
final Label messageLabel = new Label("");
private void getGlueckskeks() {
GlueckskeksServiceAsync dataService =
(GlueckskeksServiceAsync) GWT.create(GlueckskeksService.class);
ServiceDefTarget endpoint = (ServiceDefTarget) dataService;
endpoint.setServiceEntryPoint("/GlueckskeksService");
dataService.getGlueckskeks(
new AsyncCallback(){
public void onSuccess(Object result) {
GlueckskeksMessage message = (GlueckskeksMessage)result;
processingLabel.setText("Status: Ready.");
messageLabel.setText(message.getMessage());
}
public void onFailure(Throwable caught) {
Window.alert("Unable to get data from server: "
+caught.toString());
}
});
}
public void onModuleLoad() {
final Button button = new Button("Neuer Glückskeks");
button.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
getGlueckskeks();
processingLabel.setText("Status: Searching...");
}
});
RootPanel.get("fortuneStatus").add(processingLabel);
RootPanel.get("fortuneButton").add(button);
RootPanel.get("fortuneMessage").add(messageLabel);
}
}
!!! Listing 4: Sajax
Sajax-Glückskeks
Ajax-Glückskeks (PHP/Sajax-Version)
Glückskeks-Botschaft:
!!! Listing 5: Xajax
addAssign("fortuneMessage","innerHTML", $ergebnis);
// Response in das Nachrichtenformat XML wandeln:
return $objResponse->getXML();
}
// Zuvor definierte Funktion fuer Javascript-Export registrieren
$xajax->registerFunction("getFortuneCookie");
// CGI-Request (falls vorhanden) verarbeiten
$xajax->processRequests();
?>
Ajaxbuch.de. Xajax
printJavascript();
?>
Ajax-Glückskeks (Xajax-Version)
Glückskeks-Botschaft:
!!! Listing 6: DWR
package com.linkwerk.dwr;
// imports...
GlueckskeksProducer {
private Random random = new Random();
public String getGlueckskeks() throws ServletException, IOException
{
WebContext ctx = WebContextFactory.get();
InputStream f = ctx.getServletContext().getResourceAsStream("/WEB-INF/cookies.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(f,
"utf-8"));
List lines = new ArrayList();
String line = null;
while ( (line=reader.readLine()) != null ){
lines.add(line);
}
return lines.get(random.nextInt(lines.size() - 1));
}
}
!!! Listing 7: Web.config (Atlas)
!!! Listing 8: Atlas-Glückskeksklasse
<%@ WebService Class="Linkwerk.Com.GlueckskeksService" Language="C#" %>
namespace Linkwerk.Com {
[WebService (Namespace = "http://www.linkwerk.com/webservices/") ]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class GlueckskeksService : WebService {
private Random random=new Random();
static List lines = new List();
public GlueckskeksService() {
String rootPath = Server.MapPath("~");
try {
using (StreamReader sr = new StreamReader(rootPath + "\\cookies.txt")) {
String line;
while ((line = sr.ReadLine()) != null) {
lines.Add(line);
}
}
} catch (Exception e) {
throw e;
}
}
[WebMethod]
public string getGlueckskeks() {
return String.Format(getRandomLine());
}
public string[] getGlueckskekse() {
return lines.ToArray();
}
private string getRandomLine() {
return String.Format(getGlueckskekse()[random.Next(lines.Count - 1)]);
}
}
}
!!! Listing 9: Atlas-Glückskeks: HTML
<%@ Page
Language = "C#"
Title = "Glückskeks"
%>
Glückskeks mit Atlas