WebSphere brand IBM WebSphere Premises Server, Version 6.1.x

Creating the servlet

About this task
Follow these steps to create the servlet.
Procedure
  1. In Rational® Application Developer for WebSphere® Software, select TemperatureEvent_Web.
  2. Select File > New > Other > Web > Servlet and click Next.
  3. Complete the following tasks in the Create Servlet window.
    • For the project, select TemperatureEvent_Web.
    • For the folder, enter \TemperatureEvent_Web\src.
    • For the Java™ package, enter com.temperature.event.web.
    • For the class name, enter TemperatureEventServlet.
  4. Click Finish. The source editor for TemperatureEventServlet.java opens.
  5. Change the source to be the following:
    /**********************************************************************************
     * 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();
    	}
    }
  6. Select File > Save All.
  7. Select File > Close All.
Example

In this example:

What to do next
Run the test.

Library | Support | Terms of use

(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.