package org.gcube.nlphub; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.Writer; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.gcube.nlphub.nlp.NlpNerRunner; import org.gcube.nlphub.workspace.WorkspaceManager; import org.gcube.nlphub.mapper.JsonMapper; import org.gcube.nlphub.legacy.Constants; import org.gcube.nlphub.legacy.JsonManager; import org.gcube.nlphub.legacy.NlpHubException; import org.gcube.nlphub.mapper.DefaultMapper; /** * Servlet implementation class NlpMapper */ @WebServlet("/nlphub-mapper-servlet") public class NLPMapper extends HttpServlet { private static final long serialVersionUID = 1L; private Logger logger = Logger.getLogger(NLPMapper.class.getSimpleName()); private String token = "df2cc5f5-63ee-48c1-b2a6-1210030c57b8-843339462"; private boolean devMode = true; /** * @see HttpServlet#HttpServlet() */ public NLPMapper() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doWork(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doWork(request, response); } private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); token = Constants.getToken(request, devMode); String documentLink = request.getParameter("plink"); // link to text file (workspace) System.out.println("documentLink\n: " + documentLink); String toBeMap = request.getParameter("tobemap"); System.out.println("tobemap:\n" + toBeMap); String[] tokens; if(toBeMap.indexOf("|") > 0) tokens = toBeMap.split("\\|"); else { tokens = new String[1]; tokens[0] = toBeMap; } String annotations = request.getParameter("annotations"); System.out.println("annotations\n: " + annotations); String language = request.getParameter("lang"); PrintWriter writer = response.getWriter(); System.out.println("language\n: " + language); System.out.println("tokens length: " + tokens.length); for(int u=0; u -1) { byteRead = reader.read(readBuffer, 0, 1024); if (byteRead > 0) { String bString = new String(readBuffer, 0, byteRead); content += bString; } } return content; } private String saveResult(String jsonResult) throws NlpHubException { WorkspaceManager ws = new WorkspaceManager(); long now = System.currentTimeMillis(); String fileName = "result-nlp-" + now + ".json"; ws.deleteFile(fileName, token); byte[] byteContent = jsonResult.getBytes(StandardCharsets.UTF_8); if (!ws.uploadFile(byteContent, fileName, Constants.DEFAULT_DESCRIPTION, token)) { throw new NlpHubException("Error writing file: " + fileName + " on workspace (token: " + token + ")", null); } String link = ws.getPublicLink(fileName, token); return link; } }