To embed a Corda image in a Java Servlet, use the Java Corda Embedder.
Embedding a Corda image into a Java Servlet can be broken down into the following steps:
- Importing the Library
- Instantiating a Corda Embedder Object
- Setting the Server Information
- Specifying Image Information
- Writing the Image to a Web Page
- Compiling a Servlet
The example code at the end of this section shows how to embed a Corda image in a Java Servlet.
| Note: This documentation assumes that you are familiar with Java Servlets. |
Importing the Library
Before importing the Corda Embedder library into a Java Servlet, first make sure that product_root\Server\dev_tools\embedder\java\CordaEmbedder.jar is in the Web Application's classpath. For more information, see Java Application Servers.
To import the Corda Embedder library, include the following line at the beginning of the Servlet.
import com.corda.CordaEmbedder;
This instructs the Servlet to import the CordaEmbedder class.
Instantiating a Corda Embedder Object
To instantiate a Corda Embedder object, use code similar to the following:
CordaEmbedder myImage = new CordaEmbedder();
Setting the Server Information
Corda Embedder needs to know two Corda Server addresses: the address that the Web client uses to access Corda Server (externalServerAddress), and the address that Corda Embedder uses to access Corda Server (internalCommPortAddress).
| Note: If you have trouble finding these values, ask your Corda Server administrator or refer to Identifying Server Addresses. |
For example, if Corda Embedder communicates with the Corda Server at 10.0.1.1:2002 and Web clients request images from http://myserver.mycompany.com:2001, include the following in the code that generates the Corda image:
myImage.externalServerAddress = "http://myserver.mycompany.com:2001" myImage.internalCommPortAddress = "10.0.1.1:2002"
Specifying Image Information
After specifying server address information, give Corda Embedder some information about the Corda image you want to embed.
There are numerous Corda Embedder commands to specify image information, which are consistent in all Web application environments. Thus, it is unnecessary to discuss each of these commands individually at this time.
The table below provides links to more information about Corda image features and components:
| Topic | Refer To |
|---|---|
| Annotations | Data Annotations |
| Content Delivery / Presentation Control | Image Deployment Issues and Descriptive Text Settings |
| Data | Connecting to Data Files and Connecting to Databases |
| Drilldown | Building Drilldown |
| Graph or Map Customization | Dynamically Customizing Graphs and Maps |
| Image Size & Format | Changing the Image Format and Changing Image Size |
Writing the Image to a Web Page
When you are ready to write the embedding HTML to a Web page, output the getEmbeddingHTML method to the Web page. For example, if you have instantiated a PrintWriter object named pw, use code similar to the following to output the embedding HTML:
pw.println(myImage.getEmbeddingHTML());
Compiling a Servlet
Make sure that CordaEmbedder.jar is in the classpath when compiling the servlet. If you do not know how to compile a servlet, refer to the documentation for the Web application server.
Complete Example Code
The example below demonstrates embedding a Corda image in a Java Servlet.
| Note: To produce an example map instead of a graph, replace examples/bar.itxml with examples/map/australia_combo.itxml in the code designating the Image Template file. |
Embedding a Corda Image in a Java Servlet
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import com.corda.CordaEmbedder; public class example1 extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter pw = response.getWriter(); response.setContentType("text/html"); try { pw.println("<html>"); pw.println("<head>"); pw.println("<title>My First Embedded Image</title>"); pw.println("</head>"); pw.println("<body>"); pw.println("<h1>Your image will appear below:</h1>"); // Begin Corda Embedder Code CordaEmbedder myImage = new CordaEmbedder(); myImage.externalServerAddress = "http://<server_address>:2001"; myImage.internalCommPortAddress = "http://localhost:2002"; myImage.imageTemplate = "image_templates\examples\bar.itxml"; myImage.width = 600; myImage.height = 400; myImage.pcScript = "title.setText(Hello World)"; pw.println(myImage.getEmbeddingHTML()); // End Corda Embedder Code pw.println("</body>"); pw.println("</html>"); } catch(Exception exc) { } } }
| Note: This code catches any exceptions that may be generated as you embed the Corda image. You do not have to do this. The Corda Embedder itself does not throw any exceptions. However, the PrintWriter or the request object might throw an exception, so you might want to catch it. Besides, it's good coding practice to catch exceptions. |