This blog will talk about how to create organizations using REST webservice in JasperServer.
STEP 1:-
Put the following jar files in lib folder:
Commons-codec-1.4.jar
Commons-io-1.4.jar
http-core-4.1.jar
httpclient-4.1.1.jar
httpmime-4.1.jar
Jakarta-httpcore.jar
Restclient-cli.3.2.2-jar-with-dependencies.jar
Servlet-api.jar
STEP 2:-
Create a jsp page
index.jsp:
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=ISO-8859-1”>
<title>Insert title here</title>
</head>
<body>
<form action=“TestWebService“>
<input type=“submit” value=“submit”>
</form>
STEP 3:=
Create client :
com.helical.restwebservices->TestWebService.java
TestWebService.java
package com.helical.restwebservices;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
public class TestWebService extends HttpServlet{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req , HttpServletResponse res)
{
String jSessionId;
jSessionId = jWSLogin(” test@helicaltech.com “, “test”, null);
addOrganization(jSessionId,res);
}
public String jWSLogin(String username, String password, String organization)
{
if(username == null || password == null)
{
throw new RuntimeException(“Failed: Username or Password can’t be null”);
}
String j_uname = organization == null ? username : (organization.trim().length() == 0 || organization == “”) ? username : username +”%7C”+ organization;
String j_password = password;
String jSessionIdCookie=””;
try {
URL url = new URL(“http:// test. com/login”);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“Content-Type”, “application/x-www-form-urlencoded”);
String input = “j_username=”+j_uname+”&j_password=”+j_password;
OutputStream os = conn.getOutputStream(); os.write(input.getBytes());
os.flush();
if (conn.getResponseCode() != 200) {
throw new RuntimeException(“Failed : HTTP error code : “+ conn.getResponseCode());
}
else
{
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
List<String> cookies = conn.getHeaderFields().get(“Set-Cookie”);
for (String string : cookies)
{
jSessionIdCookie = string;
}
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jSessionIdCookie;
}
public void addOrganization(String jSessionId, HttpServletResponse res)
{
HttpClient httpClient = new DefaultHttpClient();
try{
HttpPost request = new HttpPost(“http:// test. com/rest_v2/organizations?create=true&”);
request.setHeader(“Cookie”, jSessionId);
StringEntity params =new StringEntity(“{\”id\”:\”helicaltest123\”,\”alias\”:\”helicaltest123\”,\”parentId\”:\”organizations\”,\”tenantName\”:\”helicaltest123\”,\”tenantDesc\”:\”Audit Department of Finance\”,\”theme\”:\”default\”}”);
request.addHeader(“content-type”, “application/json”);
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
}catch(Exception e)
{
e.printStackTrace();
}finally {
httpClient.getConnectionManager().shutdown();
}
}
}
NOTE:=
We have created two methods in TestWebService.java
- jWSLogin()
- addOrganization()
jWSLogin() is use to aunthenticate and return session so that we can use that session in another task.
addOrganization()
is use to add organization. Data which we want to insert should be in json or xml format. In this example I have taken in json format.
STEP 4:-
Create web.xml:=
<?xml version=“1.0” encoding=“UTF-8”?>
<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“ xmlns=“http://java.sun.com/xml/ns/javaee” xmlns:web=“http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” id=“WebApp_ID” version=“2.5”>
<display-name>RestWebServices-new</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name> TestWebService </servlet-name>
<servlet-class>com.helical.restwebservices. TestWebService </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> TestWebService </servlet-name>
<url-pattern>/ TestWebService </url-pattern>
</servlet-mapping>
</web-app>
For any other help on Jasper Server, please get in touch with us
Best Open Source Business Intelligence Software Helical Insight is Here