/********************************************************************************** * Licensed Materials - Property of IBM * 5724-L17 WebSphere Premises Server * (c) Copyright IBM Corp. 2008 All rights reserved. * * US Government Users Restricted Rights - Use, duplication or disclosure * restricted by GSA ADP Schedule Contract with IBM Corp. * * DISCLAIMER OF WARRANTIES. The following code is sample code created by * IBM Corporation. This sample code is part of the WebSphere Premises Server * and is warranted to perform its intended function only if used un-modified. * If you modify this code then it is considered provided "AS IS", without * warranty of any kind. Notwithstanding the foregoing, IBM shall not be liable * for any damages arising out of your use of the sample code, even if they have * been advised of the possibility of such damages. ***********************************************************************************/ package com.temperature.event.web; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ibm.sensorevent.model.IBMSensorEvent; import com.ibm.sensorevent.model.ISensorEvent; import com.ibm.sensorevent.model.converter.XMLConverter; import com.temperature.event.payload.TemperatureEventPayload; public class TemperatureEventServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { private static final long serialVersionUID = 1L; public TemperatureEventServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { int temperature = (new Random()).nextInt(100); long time = System.currentTimeMillis(); // create the event String profile = "EDDR"; String eventType = "temperature/event"; TemperatureEventPayload payload = (TemperatureEventPayload) TemperatureEventPayload.getInstance(profile + "/" + eventType); payload.setTemperature(temperature); payload.setTime(time); ISensorEvent event = IBMSensorEvent.getInstance(profile + "/" + eventType, payload); event.getHeader().setSourceId("E2"); // convert to XML XMLConverter converter = (XMLConverter) XMLConverter.getInstance(); String xml = converter.toXMLString(event); // send the XML to the Premises Server gateway this.sendToGateway(xml); // display a result in the browser PrintWriter pw = response.getWriter(); response.setContentType("text/html"); pw.println("<P>Sample Event Sent</P>"); pw.println("<P>temperature = " + temperature + "</P>"); pw.println("<P>time = " + time + "</P>"); } catch (Exception e) { e.printStackTrace(); } } private void sendToGateway(String xml) throws Exception { String urlString = "http://localhost:9080/ibmse/eventpublish"; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setUseCaches(false); connection.setDoInput(true); connection.setDoOutput(true); connection.connect(); StringBuffer data = new StringBuffer(); data.append("eventxml=" + URLEncoder.encode(xml, "UTF-8")); DataOutputStream dos = new DataOutputStream(connection.getOutputStream()); dos.writeBytes(data.toString()); dos.flush(); dos.close(); // getting the response is required to force the request; // otherwise, it might not even be sent at all InputStream is = connection.getInputStream(); is.close(); } }
In this example:
(c) Copyright IBM Corporation 2004, 2008. All rights reserved.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted
by GSA ADP Schedule Contract with IBM Corp.