refs 2521: Explore the possibility to port the StatMan interface onto Dataminer

https://support.d4science.org/issues/2521

Fixed time delay on Show Computation

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@128758 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2016-05-20 15:57:35 +00:00
parent 7309dd2a8f
commit 109423f1c0
9 changed files with 240 additions and 148 deletions

View File

@ -328,7 +328,7 @@ public class ComputationsExecutedPanel extends FramedPanel {
@Override @Override
public void onSelect(SelectEvent event) { public void onSelect(SelectEvent event) {
openFile(); downloadFile();
} }
}); });
@ -461,7 +461,7 @@ public class ComputationsExecutedPanel extends FramedPanel {
} }
private void openFile() { private void downloadFile() {
if (selectedItem != null && !selectedItem.isFolder()) { if (selectedItem != null && !selectedItem.isFolder()) {
final ItemDescription itemDescription = new ItemDescription( final ItemDescription itemDescription = new ItemDescription(

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -93,9 +93,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
try { try {
HttpSession session = this.getThreadLocalRequest().getSession(); HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session); ASLSession aslSession = SessionUtil.getASLSession(session);
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
List<OperatorsClassification> list= smClient.getOperatorsClassifications(); List<OperatorsClassification> list= smClient.getOperatorsClassifications();
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
return list; return list;
} catch (ServiceException e) { } catch (ServiceException e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
@ -117,9 +117,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
HttpSession session = this.getThreadLocalRequest().getSession(); HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session); ASLSession aslSession = SessionUtil.getASLSession(session);
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
List<Parameter> list=smClient.getInputParameters(operator); List<Parameter> list=smClient.getInputParameters(operator);
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
return list; return list;
} catch (ServiceException e) { } catch (ServiceException e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
@ -139,9 +139,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
HttpSession session = this.getThreadLocalRequest().getSession(); HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session); ASLSession aslSession = SessionUtil.getASLSession(session);
logger.debug("StartComputation(): [ operator=" + operator + "]"); logger.debug("StartComputation(): [ operator=" + operator + "]");
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
ComputationId computationId= smClient.startComputation(operator); ComputationId computationId= smClient.startComputation(operator);
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
return computationId; return computationId;
} catch (ServiceException e) { } catch (ServiceException e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
@ -164,9 +164,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
Map<String, String> properties = StorageUtil.getProperties( Map<String, String> properties = StorageUtil.getProperties(
aslSession.getUsername(), itemDescription.getId()); aslSession.getUsername(), itemDescription.getId());
logger.debug("Properties: " + properties); logger.debug("Properties: " + properties);
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
ComputationId computationId= smClient.resubmitComputation(properties); ComputationId computationId= smClient.resubmitComputation(properties);
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
return computationId; return computationId;
} catch (ServiceException e) { } catch (ServiceException e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
@ -186,9 +186,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
HttpSession session = this.getThreadLocalRequest().getSession(); HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session); ASLSession aslSession = SessionUtil.getASLSession(session);
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
ComputationStatus computationStatus= smClient.getComputationStatus(computationId); ComputationStatus computationStatus= smClient.getComputationStatus(computationId);
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
return computationStatus; return computationStatus;
} catch (ServiceException e) { } catch (ServiceException e) {
@ -293,9 +293,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
HttpSession session = this.getThreadLocalRequest().getSession(); HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session); ASLSession aslSession = SessionUtil.getASLSession(session);
logger.debug("CancelComputation(): " + computationId); logger.debug("CancelComputation(): " + computationId);
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
String result = smClient.cancelComputation(computationId); String result = smClient.cancelComputation(computationId);
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
return result; return result;
} catch (ServiceException e) { } catch (ServiceException e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
@ -315,10 +315,10 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
HttpSession session = this.getThreadLocalRequest().getSession(); HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session); ASLSession aslSession = SessionUtil.getASLSession(session);
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
OutputData outputData = smClient OutputData outputData = smClient
.getOutputDataByComputationId(computationId); .getOutputDataByComputationId(computationId);
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
Log.debug("OutputData: " + outputData); Log.debug("OutputData: " + outputData);
return outputData; return outputData;
} catch (ServiceException e) { } catch (ServiceException e) {
@ -344,9 +344,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
Map<String, String> properties = StorageUtil.getProperties( Map<String, String> properties = StorageUtil.getProperties(
aslSession.getUsername(), itemDescription.getId()); aslSession.getUsername(), itemDescription.getId());
logger.debug("Properties: " + properties); logger.debug("Properties: " + properties);
SClient smClient = SessionUtil.getSClient(session, aslSession); SClient smClient = SessionUtil.getSClient(aslSession);
ComputationData computationData= smClient.getComputationDataByComputationProperties(properties); ComputationData computationData= smClient.getComputationDataByComputationProperties(properties);
SessionUtil.putSClient(session, smClient); //SessionUtil.putSClient(session, smClient);
return computationData; return computationData;

View File

@ -0,0 +1,67 @@
package org.gcube.portlets.user.dataminermanager.server;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* DownloadFolder Servlet
*/
@WebServlet("/DownloadFolderServlet")
public class DownloadFolderServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DownloadFolderServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
createResponse(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
createResponse(request, response);
}
private void createResponse(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
/*try {
request.getParameter("c")
File tmpZip = ZipUtil.zipFolder((WorkspaceFolder) item);
resp.setHeader( "Content-Disposition", "attachment; filename=\"" + item.getName() + ".zip\"" );
resp.setContentType("application/zip");
resp = setContentLength(resp, tmpZip.length());
OutputStream out = resp.getOutputStream();
FileInputStream fileTmpZip = new FileInputStream(tmpZip);
IOUtils.copy(fileTmpZip, resp.getOutputStream());
fileTmpZip.close();
out.close();
tmpZip.delete();
return;
} catch (Exception e) {
logger.error("Error during folder compression "+itemId,e);
handleError(urlRedirectOnError, req, resp, itemId, HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during folder compression: "+e.getMessage());
return;
}
}*/
}
}

View File

@ -89,7 +89,7 @@ public class SessionUtil {
} }
/*
public static void putSClient(HttpSession session, SClient sClient) public static void putSClient(HttpSession session, SClient sClient)
throws Exception { throws Exception {
SClient sc = (SClient) session.getAttribute(Constants.SClient); SClient sc = (SClient) session.getAttribute(Constants.SClient);
@ -99,15 +99,20 @@ public class SessionUtil {
session.removeAttribute(Constants.SClient); session.removeAttribute(Constants.SClient);
session.setAttribute(Constants.SClient, sClient); session.setAttribute(Constants.SClient, sClient);
} }
} }*/
public static SClient getSClient(HttpSession session, ASLSession aslSession) public static SClient getSClient(ASLSession aslSession)
throws Exception { throws Exception {
SClient sClient = (SClient) session.getAttribute(Constants.SClient); if(aslSession==null){
logger.error("ASLSession is null!");
throw new ExpiredSessionServiceException("Session Expired!");
}
SClient sClient = (SClient) aslSession.getAttribute(Constants.SClient);
if (sClient == null) { if (sClient == null) {
logger.info("Created new SClient"); logger.info("Created new SClient");
ServiceCredential serviceCredential=new ServiceCredential(aslSession.getUsername(), aslSession.getScope(), ServiceCredential serviceCredential=new ServiceCredential(aslSession.getUsername(), aslSession.getScope(),
@ -118,7 +123,7 @@ public class SessionUtil {
director.setSClientBuilder(sBuilder); director.setSClientBuilder(sBuilder);
director.constructSClient(); director.constructSClient();
sClient = director.getSClient(); sClient = director.getSClient();
session.setAttribute(Constants.SClient, sClient); aslSession.setAttribute(Constants.SClient, sClient);
} else { } else {
logger.info("Use SClient in session"); logger.info("Use SClient in session");
} }

View File

@ -1,7 +1,7 @@
package org.gcube.portlets.user.dataminermanager.server.smservice.wps.computationsvalue; package org.gcube.portlets.user.dataminermanager.server.smservice.wps.computationsvalue;
import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -73,37 +73,13 @@ public class ComputationValueBuilder {
} }
private ComputationValue retrieveFileName(final String value) { private ComputationValue retrieveFileName(final String value) {
HttpURLConnection conn = null; URLConnection conn = null;
logger.debug("Retrieve File Header from Storage for value: "+value);
try { try {
//Use URL connection because in internal network is more fast
URL url = new URL(value); URL url = new URL(value);
int attempts = 0; conn = url.openConnection();
do { return extractFileName(conn, value);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setRequestMethod("HEAD");
conn.setAllowUserInteraction(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
if (conn.getResponseCode() != 200) {
logger.error("Retrieve File Name Response Code: "
+ conn.getResponseCode());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
}
attempts++;
} while (attempts <= 5 || conn.getResponseCode() != 200);
if (conn.getResponseCode() == 200) {
return extractFileName(conn, value);
} else {
return new ComputationValueFile(value, null, null);
}
} catch (Throwable e) { } catch (Throwable e) {
logger.error("Retrieve File Name: " + e.getLocalizedMessage()); logger.error("Retrieve File Name: " + e.getLocalizedMessage());
@ -111,8 +87,48 @@ public class ComputationValueBuilder {
return new ComputationValueFile(value, null, null); return new ComputationValueFile(value, null, null);
} }
} }
/*
int attempts = 0;
private ComputationValue extractFileName(HttpURLConnection conn, do {
logger.debug("Attempts: "+attempts);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setRequestMethod("HEAD");
conn.setAllowUserInteraction(false);
conn.setDoInput(false);
conn.setDoOutput(false);
conn.connect();
if (conn.getResponseCode() != 200) {
logger.error("Retrieve File Name Response Code: "
+ conn.getResponseCode());
try {
logger.debug("Sleep time: 5000");
Thread.sleep(5000);
} catch (InterruptedException e) {
}
}
attempts++;
} while (attempts <= 5 || conn.getResponseCode() != 200);
if (conn.getResponseCode() == 200) {
logger.debug("Retrived Header");
return extractFileName(conn, value);
} else {
logger.debug("Header not retrieved use default");
return new ComputationValueFile(value, null, null);
}
*/
private ComputationValue extractFileName(URLConnection conn,
String value) { String value) {
ComputationValue computationValue = null; ComputationValue computationValue = null;
String fileName = null; String fileName = null;

View File

@ -1,5 +1,6 @@
package org.gcube.portlets.user.dataminermanager.server.storage; package org.gcube.portlets.user.dataminermanager.server.storage;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URL; import java.net.URL;
@ -15,11 +16,13 @@ import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
import org.gcube.common.homelibrary.home.workspace.Properties; import org.gcube.common.homelibrary.home.workspace.Properties;
import org.gcube.common.homelibrary.home.workspace.Workspace; import org.gcube.common.homelibrary.home.workspace.Workspace;
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException; import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException;
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException; import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException;
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException; import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
import org.gcube.common.homelibrary.home.workspace.exceptions.WrongItemTypeException; import org.gcube.common.homelibrary.home.workspace.exceptions.WrongItemTypeException;
import org.gcube.common.homelibrary.util.zip.ZipUtil;
import org.gcube.contentmanagement.blobstorage.service.IClient; import org.gcube.contentmanagement.blobstorage.service.IClient;
import org.gcube.contentmanager.storageclient.model.protocol.smp.SMPURLConnection; import org.gcube.contentmanager.storageclient.model.protocol.smp.SMPURLConnection;
import org.gcube.contentmanager.storageclient.wrapper.AccessType; import org.gcube.contentmanager.storageclient.wrapper.AccessType;
@ -215,6 +218,33 @@ public class StorageUtil {
} }
} }
public File zipFolder(String user, String folderId)
throws ServiceException {
Workspace ws;
try {
ws = HomeLibrary.getUserWorkspace(user);
WorkspaceItem workSpaceItem = ws.getItem(folderId);
if (!workSpaceItem.isFolder()) {
throw new ServiceException(
"Item is not valid folder!");
}
WorkspaceFolder folder = (WorkspaceFolder) workSpaceItem;
File fileZip = ZipUtil.zipFolder(folder);
return fileZip;
} catch (IOException | InternalErrorException
| WorkspaceFolderNotFoundException | HomeNotFoundException
| ItemNotFoundException e) {
e.printStackTrace();
throw new ServiceException(e.getLocalizedMessage());
}
}
/** /**
* *

View File

@ -1,96 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" <servlet>
version="3.0"> <servlet-name>DataMinerManagerServlet</servlet-name>
<servlet-class>org.gcube.portlets.user.dataminermanager.server.DataMinerManagerServiceImpl</servlet-class>
<servlet> </servlet>
<servlet-name>DataMinerManagerServlet</servlet-name> <servlet>
<servlet-class>org.gcube.portlets.user.dataminermanager.server.DataMinerManagerServiceImpl</servlet-class> <servlet-name>jUnitHostImpl</servlet-name>
</servlet> <servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class>
<servlet> </servlet>
<servlet-name>jUnitHostImpl</servlet-name> <servlet>
<servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class> <servlet-name>DownloadService</servlet-name>
</servlet> <servlet-class>org.gcube.portlets.user.dataminermanager.server.DownloadServlet</servlet-class>
<servlet> </servlet>
<servlet-name>DownloadService</servlet-name> <servlet>
<servlet-class>org.gcube.portlets.user.dataminermanager.server.DownloadServlet</servlet-class> <servlet-name>workspaceExplorer</servlet-name>
</servlet> <servlet-class>org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl</servlet-class>
</servlet>
<!-- Workspace Explorer --> <servlet>
<servlet> <servlet-name>workspaceUploaderService</servlet-name>
<servlet-name>workspaceExplorer</servlet-name> <servlet-class>org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploaderServiceImpl</servlet-class>
<servlet-class>org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl</servlet-class> </servlet>
</servlet> <servlet>
<servlet-name>workspaceUploadServletStream</servlet-name>
<!-- Workspace Uploader --> <servlet-class>org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploadServletStream</servlet-class>
<servlet> </servlet>
<servlet-name>workspaceUploaderService</servlet-name> <servlet>
<servlet-class>org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploaderServiceImpl</servlet-class> <servlet-name>checkServlet</servlet-name>
</servlet> <servlet-class>org.gcube.portlets.widgets.sessionchecker.server.SessionCheckerServiceImpl</servlet-class>
</servlet>
<servlet> <servlet>
<servlet-name>workspaceUploadServletStream</servlet-name> <servlet-name>scopeService</servlet-name>
<servlet-class>org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploadServletStream</servlet-class> <servlet-class>org.gcube.portlets.user.gcubewidgets.server.ScopeServiceImpl</servlet-class>
</servlet> </servlet>
<servlet-mapping>
<servlet> <servlet-name>DataMinerManagerServlet</servlet-name>
<servlet-name>checkServlet</servlet-name> <url-pattern>/dataminermanager/dataminerman</url-pattern>
<servlet-class>org.gcube.portlets.widgets.sessionchecker.server.SessionCheckerServiceImpl</servlet-class> </servlet-mapping>
</servlet> <servlet-mapping>
<servlet-name>jUnitHostImpl</servlet-name>
<servlet> <url-pattern>/dataminermanager/junithost/*</url-pattern>
<servlet-name>scopeService</servlet-name> </servlet-mapping>
<servlet-class>org.gcube.portlets.user.gcubewidgets.server.ScopeServiceImpl</servlet-class> <servlet-mapping>
</servlet> <servlet-name>DownloadService</servlet-name>
<url-pattern>/dataminermanager/DownloadService</url-pattern>
<!-- Mapping --> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>DataMinerManagerServlet</servlet-name> <servlet-name>workspaceExplorer</servlet-name>
<url-pattern>/dataminermanager/dataminerman</url-pattern> <url-pattern>/dataminermanager/WorkspaceExplorerService</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping>
<servlet-mapping> <servlet-name>workspaceUploaderService</servlet-name>
<servlet-name>jUnitHostImpl</servlet-name> <url-pattern>/dataminermanager/workspaceUploaderService</url-pattern>
<url-pattern>/dataminermanager/junithost/*</url-pattern> </servlet-mapping>
</servlet-mapping> <servlet-mapping>
<servlet-mapping> <servlet-name>workspaceUploadServletStream</servlet-name>
<servlet-name>DownloadService</servlet-name> <url-pattern>/dataminermanager/workspaceUploadServletStream</url-pattern>
<url-pattern>/dataminermanager/DownloadService</url-pattern> </servlet-mapping>
</servlet-mapping> <servlet-mapping>
<servlet-name>checkServlet</servlet-name>
<servlet-mapping> <url-pattern>/dataminermanager/checksession</url-pattern>
<servlet-name>workspaceExplorer</servlet-name> </servlet-mapping>
<url-pattern>/dataminermanager/WorkspaceExplorerService</url-pattern> <servlet-mapping>
</servlet-mapping> <servlet-name>scopeService</servlet-name>
<url-pattern>/dataminermanager/scopeService</url-pattern>
<servlet-mapping> </servlet-mapping>
<servlet-name>workspaceUploaderService</servlet-name> <welcome-file-list>
<url-pattern>/dataminermanager/workspaceUploaderService</url-pattern> <welcome-file>DataMinerManager.html</welcome-file>
</servlet-mapping> </welcome-file-list>
<servlet-mapping>
<servlet-name>workspaceUploadServletStream</servlet-name>
<url-pattern>/dataminermanager/workspaceUploadServletStream</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>checkServlet</servlet-name>
<url-pattern>/dataminermanager/checksession</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>scopeService</servlet-name>
<url-pattern>/dataminermanager/scopeService</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>DataMinerManager.html</welcome-file>
</welcome-file-list>
</web-app> </web-app>