Contents
This sample demonstrates the usage of the Spotfire Streaming XML-Over-HTTP Output Adapter.
The XML Over HTTP embedded adapter posts tuples to an HTTP post handler. These can be created in a variety of languages and forms. A common form is a Java servlet, an example of which is provided in Example Servlet.
In StreamBase Studio, import this sample with the following steps:
-
From the top-level menu, click
> . -
Enter
xmlo
to narrow the list of options. -
Select XML-over-HTTP output adapter from the StreamBase Standard Adapters category.
-
Click Import Now.
StreamBase Studio creates a project for the sample.
-
In the Project Explorer view, open the sample you just loaded.
If you see red marks on a project folder, wait a moment for the project to load its features.
If the red marks do not resolve themselves after a minute, select the project, right-click, and select
> from the context menu. -
Open the
src/main/eventflow/
folder.packageName
-
Open the
XMLOverHTTPTest.sbapp
file. In the EventFlow editor, click the XMLOverHTTP adapter icon to open its Properties view. -
In the Adapter Settings tab, change URL to point to your HTTP POST handler. If a servlet is handling the HTTP POST request, then point to the fully qualified path of the deployed servlet, such as
http://
.host
:port
/path-to-servlet -
Make sure the application is the currently active tab in the EventFlow Editor, and click the Run button. This opens the SB Test/Debug perspective and starts the module.
-
Select the Manual Input tab.
-
Enter valid integers for a, b, and c, and press .
-
When done, press F9 or click the Terminate EventFlow Fragment button.
-
The POST handler for the specified URL should now have received one request for each tuple entered.
The following is an example of a simple Java servlet you can use with this sample.
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.net.URLDecoder; public class TestServlet extends HttpServlet { public TestServlet () { } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { DataOutputStream daos = new DataOutputStream(resp.getOutputStream()); daos.writeBytes("Hello, World"); daos.flush(); daos.close(); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(req.getInputStream())); String line = null; while ((line = br.readLine()) != null) { line = URLDecoder.decode(line); System.out.println("readLine:" + line); } } }
When you load the sample into StreamBase® Studio, Studio copies the sample project's files to your Studio workspace, which is normally part of your home directory, with full access rights.
Important
Load this sample in StreamBase® Studio, and thereafter use the Studio workspace copy of the sample to run and test it, even when running from the command prompt.
Using the workspace copy of the sample avoids permission problems. The default workspace location for this sample is:
studio-workspace
/sample_adapter_embedded_xmloverhttp
See Default Installation
Directories for the default location of studio-workspace
on your system.