added exceptions
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/uri-resolver@100685 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
1e961a0593
commit
64b7d28a27
|
@ -1,6 +1,7 @@
|
|||
package org.gcube.datatransfer.resolver.gis;
|
||||
|
||||
import org.gcube.datatransfer.resolver.gis.entity.ServerParameters;
|
||||
import org.gcube.datatransfer.resolver.gis.exception.GeonetworkInstanceException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -38,17 +39,17 @@ public class GeonetowrkAccessParameter implements GeonetworkServiceInterface{
|
|||
* @param geonetworkInstance
|
||||
* @return
|
||||
*/
|
||||
public GeonetworkInstance getGeonetworkInstance(boolean authenticate) throws Exception {
|
||||
public GeonetworkInstance getGeonetworkInstance(boolean authenticate) throws GeonetworkInstanceException {
|
||||
return instanceGeonetwork(authenticate);
|
||||
}
|
||||
|
||||
private GeonetworkInstance instanceGeonetwork(boolean authenticate) throws Exception{
|
||||
private GeonetworkInstance instanceGeonetwork(boolean authenticate) throws GeonetworkInstanceException{
|
||||
|
||||
if(scope == null || scope.isEmpty())
|
||||
throw new Exception("Scope is null");
|
||||
throw new GeonetworkInstanceException("Scope is null");
|
||||
|
||||
if(serverParam.getUrl() == null || serverParam.getUrl().isEmpty())
|
||||
throw new Exception("Geonetwork url is null or empty");
|
||||
throw new GeonetworkInstanceException("Geonetwork url is null or empty");
|
||||
|
||||
if(geonetworkInstance==null)
|
||||
geonetworkInstance = new GeonetworkInstance(scope, serverParam.getUrl(), serverParam.getUser(), serverParam.getPassword(), authenticate);
|
||||
|
|
|
@ -3,9 +3,11 @@ package org.gcube.datatransfer.resolver.gis;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.datatransfer.resolver.gis.exception.GeonetworkInstanceException;
|
||||
import org.gcube.spatial.data.geonetwork.GeoNetwork;
|
||||
import org.gcube.spatial.data.geonetwork.GeoNetworkPublisher;
|
||||
import org.gcube.spatial.data.geonetwork.LoginLevel;
|
||||
import org.gcube.spatial.data.geonetwork.configuration.AuthorizationException;
|
||||
import org.gcube.spatial.data.geonetwork.configuration.Configuration;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -50,7 +52,7 @@ public class GeonetworkInstance {
|
|||
* @param httpSession
|
||||
* @throws Exception
|
||||
*/
|
||||
public GeonetworkInstance(String scope, String geoNetworkUrl, String user, String pwd, boolean authenticate) throws Exception {
|
||||
public GeonetworkInstance(String scope, String geoNetworkUrl, String user, String pwd, boolean authenticate) throws GeonetworkInstanceException {
|
||||
logger.trace("Instancing GeonetworkInstance with specific parameters");
|
||||
this.geoNetworkUser = user;
|
||||
this.geoNetworkPwd = pwd;
|
||||
|
@ -61,7 +63,7 @@ public class GeonetworkInstance {
|
|||
} catch (Exception e) {
|
||||
String message = "Sorry, an error occurred in instancing geonetwork";
|
||||
logger.warn(message, e);
|
||||
throw new Exception(message);
|
||||
throw new GeonetworkInstanceException(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -70,7 +72,7 @@ public class GeonetworkInstance {
|
|||
* @param authenticate
|
||||
* @throws Exception
|
||||
*/
|
||||
private void createInstance(boolean authenticate) throws Exception {
|
||||
private void createInstance(boolean authenticate) throws GeonetworkInstanceException {
|
||||
this.geonetworkPublisher = GeoNetwork.get(new GeonetworkConfiguration());
|
||||
authenticateOnGeoenetwork(authenticate);
|
||||
}
|
||||
|
@ -80,7 +82,7 @@ public class GeonetworkInstance {
|
|||
* @param authenticate
|
||||
* @throws Exception
|
||||
*/
|
||||
public void authenticateOnGeoenetwork(boolean authenticate) throws Exception {
|
||||
public void authenticateOnGeoenetwork(boolean authenticate) throws GeonetworkInstanceException {
|
||||
|
||||
logger.trace("authenticating.. geonetworkPublisher is null? "+(this.geonetworkPublisher==null));
|
||||
if(geonetworkPublisher==null){
|
||||
|
@ -89,7 +91,11 @@ public class GeonetworkInstance {
|
|||
}
|
||||
|
||||
if (authenticate){
|
||||
try {
|
||||
this.geonetworkPublisher.login(LoginLevel.DEFAULT);
|
||||
} catch (AuthorizationException e) {
|
||||
throw new GeonetworkInstanceException(e);
|
||||
}
|
||||
logger.trace("authentication on geonetwork completed");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,8 @@ import org.gcube.datatransfer.resolver.applicationprofile.ApplicationProfileRead
|
|||
import org.gcube.datatransfer.resolver.applicationprofile.ScopeUtil;
|
||||
import org.gcube.datatransfer.resolver.gis.GeoRuntimeReader.GEO_SERVICE;
|
||||
import org.gcube.datatransfer.resolver.gis.entity.ServerParameters;
|
||||
import org.gcube.datatransfer.resolver.gis.exception.GeonetworkInstanceException;
|
||||
import org.gcube.datatransfer.resolver.gis.exception.IllegalArgumentException;
|
||||
import org.gcube.datatransfer.resolver.gis.property.GisViewerAppGenericResourcePropertyReader;
|
||||
import org.gcube.datatransfer.resolver.gis.property.PropertyFileNotFoundException;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -201,6 +203,12 @@ public class GisResolver extends HttpServlet{
|
|||
logger.info("returning link: " + gisPortletUrl);
|
||||
out.close();*/
|
||||
urlRedirect(req, resp, gisPortletUrl);
|
||||
|
||||
} catch (IllegalArgumentException e){
|
||||
logger.error("IllegalArgumentException:", e);
|
||||
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, SCOPE+" illegal argument to carry out the request!");
|
||||
return;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("Exception:", e);
|
||||
String error = "Sorry, an error occurred on resolving request with UUID "+gisUUID+" and scope "+scope+". Please, contact support!";
|
||||
|
@ -250,9 +258,12 @@ public class GisResolver extends HttpServlet{
|
|||
try {
|
||||
GeonetworkServiceInterface gntwAccess = new GeonetowrkAccessParameter(scope, geonetworkParams);
|
||||
return MetadataConverter.getWMSOnLineResource(gntwAccess.getGeonetworkInstance(true), gisUUID);
|
||||
}catch (GeonetworkInstanceException e){
|
||||
logger.error("An error occurred when instancing geonetowrk gis layer with UUID "+gisUUID, e);
|
||||
throw new IllegalArgumentException("Sorry, An error occurred when instancing geonetwork with UUID: "+gisUUID);
|
||||
} catch (Exception e) {
|
||||
logger.error("An error occurred when retrieving gis layer with UUID "+gisUUID, e);
|
||||
throw new Exception("Sorry, An error occurred when retrieving gis layer with UUID "+gisUUID);
|
||||
throw new IllegalArgumentException("Sorry, An error occurred when retrieving gis layer with UUID "+gisUUID);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.datatransfer.resolver.gis.exception;
|
||||
|
||||
import org.gcube.spatial.data.geonetwork.configuration.AuthorizationException;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* @Oct 14, 2014
|
||||
*
|
||||
*/
|
||||
public class GeonetworkInstanceException extends Exception {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 8589705350737964325L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public GeonetworkInstanceException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public GeonetworkInstanceException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param e
|
||||
*/
|
||||
public GeonetworkInstanceException(AuthorizationException e) {
|
||||
super(e);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.datatransfer.resolver.gis.exception;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* @Oct 14, 2014
|
||||
*
|
||||
*/
|
||||
public class IllegalArgumentException extends Exception {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 8589705350737964325L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public IllegalArgumentException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public IllegalArgumentException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue