POST
|
I am trying to display an attachment (originally added using the attachment tool in Desktop) in a arcgis jsapi 3.17 Popup. I am unable, however, to query the attachment infos and receive an IO error. Running the code below, the 'infos' printed to the console returns the image information, but the popup does not display an image nor hyperlink.
var identifyTask, identifyParams, idPoint;
var identifyResults;
window.idHandler;
require([
"esri/dijit/Popup",
"esri/dijit/PopupTemplate",
"esri/tasks/IdentifyTask",
"esri/tasks/IdentifyParameters",
"esri/layers/FeatureLayer",
"dijit/form/CheckBox",
"dijit/form/Select",
"dijit/form/ToggleButton",
"dijit/registry",
"dojo/on",
"dojo/query",
"dojo/dom-construct",
"dojo/promise/all",
"dojo/domReady!"
], function (
Popup, PopupTemplate, IdentifyTask, IdentifyParameters, FeatureLayer, CheckBox, Select, ToggleButton, registry, on, query, domConstruct, All)
{
var popup = new Popup({
fillSymbol: new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 2), new dojo.Color([255, 255, 0, 0.25]))
}, dojo.create("div"));
var idButton = new ToggleButton({
label: "Identifier les entités",
showLabel: false,
iconClass: "identifyIcon",
checked: false,
onChange: function (val) {
//alert("test button clicked")
if (val) {
window.idHandler = on.pausable(window.myMap, "click", runIdentifies);
toggleButtonIcon(this);
console.log("Identify started");
}
else {
window.idHandler.pause();
console.log("Identify paused");
}
//toggleButtonIcon(this);
}
}, "id_button");
idButton.startup();
function mapReady(map) {
//window.connect = dojo.connect(window.myMap, "onClick", runIdentifies);
window.idHandler = on.pausable(window.myMap, "click", runIdentifies);
}
function runIdentifies(evt) {
identifyResults = [];
idPoint = evt.mapPoint;
var layers = dojo.map(window.myMap.layerIds, function (layerId) {
return window.myMap.getLayer(layerId);
});
layers = dojo.filter(layers, function (layer) {
//console.log(layer.layerInfos[0].name);
if (layer.visibleLayers[0] !== -1) {
return layer.getImageUrl && layer.visible
}
}); //Only dynamic layers have the getImageUrl function. Filter so you only query visible dynamic layers
var tasks = dojo.map(layers, function (layer) {
return new IdentifyTask(layer.url);
}); //map each visible dynamic layer to a new identify task, using the layer url
var defTasks = dojo.map(tasks, function (task) {
return new dojo.Deferred();
}); //map each identify task to a new dojo.Deferred
var params = createIdentifyParams(layers, evt);
var promises = [];
for (i = 0; i < tasks.length; i++) {
promises.push(tasks[i].execute(params[i])); //Execute each task
}
var allPromises = new All(promises);
allPromises.then(function (r) { showIdentifyResults(r, tasks); });
}
function showIdentifyResults(r, tasks) {
var results = [];
var taskUrls = [];
var resultNames = [];
var identifySelect;
r = dojo.filter(r, function (result) {
return r[0];
});
for (i = 0; i < r.length; i++) {
results = results.concat(r[i]);
for (j = 0; j < r[i].length; j++) {
taskUrls = taskUrls.concat(tasks[i].url);
}
}
var idx = 0;
results = dojo.map(results, function (result, index) {
if (!result.layerName == "CADRILLAGE"
)) {
var feature = result.feature;
var layerName = result.layerName;
var serviceUrl = taskUrls[index];
//resultNames[index] = result.layerName;
resultNames.push({
value: idx,
label: result.layerName
});
idx++;
feature.attributes.layerName = result.layerName;
identifySelect = dijit.byId("id_select");
identifySelect.removeOption(identifySelect.getOptions());
identifySelect.addOption(resultNames);
//var identifiedList = getIdentifiedList(resultNames);
//console.log(identifiedList);
if (layerName === 'E_HYDRAN') {
var template = new PopupTemplate({
title: "My Title",
fieldInfos: [
{fieldName: "Address", label: "<b>Address:</b>", visible: true},
{fieldName: "City_1", label: "<b>City:</b>", visible: true}],
showAttachments:true,
});
var featureLayer = new FeatureLayer("http://srv-tit-testbd/arcgis/rest/services/Tests/PPT_EAU_GDB/MapServer/3",{
mode: FeatureLayer.MODE_ONDEMAND,
infoTemplate: template,
outFields: ["*"]
});
var objectId, el;
objectId = feature.attributes.objectid;
featureLayer.queryAttachmentInfos(objectId, function (infos) {
//map.infoWindow.setTitle(objectId);
el = document.createElement('img');
if (infos[0].url) {
el.setAttribute('src', infos[0].url);
template.setContent(el);
//map.infoWindow.show(e.screenPoint, map.getInfoWindowAnchor(e.screenPoint));
}
});
//var template = new esri.InfoTemplate(layerName + "<br/><br/>NUMERO : ${NUMERO}<br/><br/>", "${*}");
feature.setInfoTemplate(template);
}
else {
template = new esri.InfoTemplate(layerName + "<br/><br/>NUMERO : ${NUMERO}<br/><br/>", "${*}");
feature.setInfoTemplate(template);
}
var resultGeometry = feature.geometry;
var resultType = resultGeometry.type;
return feature;
}
});
results = results.filter(function(n){
return n != undefined
});
if (results.length === 0) {
window.myMap.infoWindow.clearFeatures();
} else {
window.myMap.infoWindow.setFeatures(results);
}
window.myMap.infoWindow.show(idPoint);
if (typeof identifySelect != 'undefined') {
identifySelect.on('change', function(evt) {
var identIndex = identifySelect.get("value");
console.log(identIndex);
window.myMap.infoWindow.select(identIndex);
});
}
return results;
}
function getIdentifiedList(options) {
identifySelect = new Select({
name: "identifySelect",
id: "id_select",
options: options
}, domConstruct.create("select"));
return identifySelect.domNode;
}
function createIdentifyParams(layers, evt) {
var identifyParamsList = [];
identifyParamsList.length = 0;
dojo.forEach(layers, function (layer) {
var idParams = new esri.tasks.IdentifyParameters();
idParams.width = window.myMap.width;
idParams.height = window.myMap.height;
idParams.geometry = evt.mapPoint;
idParams.mapExtent = window.myMap.extent;
idParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_VISIBLE;
var visLayers = layer.visibleLayers;
if (visLayers !== -1) {
var subLayers = [];
for (var i = 0; i < layer.layerInfos.length; i++) {
if (layer.layerInfos[i].subLayerIds == null)
subLayers.push(layer.layerInfos[i].id);
}
idParams.layerIds = subLayers;
} else {
idParams.layerIds = [];
}
idParams.tolerance = 7;
idParams.returnGeometry = true;
identifyParamsList.push(idParams);
});
return identifyParamsList;
}
function toggleButtonIcon(tool) {
//only the tools in the toolbar are dijit togglebuttons so can iterate thru them
var domNodes = query('.dijitToggleButton', this.domNode);
//var measureDivNodes = dojo.byId("measurementDiv");
//var measureNodes = query('.dijitButtonNode', measureDivNodes);
domNodes.forEach(function(domNode){
var togbtn = registry.getEnclosingWidget(domNode);
if (togbtn == tool) {
togbtn.attr("checked", true);
//console.log("Checked is true");
}
else {
togbtn.attr("checked", false);
//console.log("Checked is false");
}
});
}
});
Should I be looking for something in particular relative to the template for the feature? **UPDATE** Still not working, but am now trying to use the mediaInfos property to see if it works. Here's how that looks: var identifyTask, identifyParams, idPoint;
var identifyResults;
window.idHandler;
require([
"esri/dijit/Popup",
"esri/dijit/PopupTemplate",
"esri/tasks/IdentifyTask",
"esri/tasks/IdentifyParameters",
"esri/layers/FeatureLayer",
"dijit/form/CheckBox",
"dijit/form/Select",
"dijit/form/ToggleButton",
"dijit/registry",
"dojo/on",
"dojo/query",
"dojo/dom-construct",
"dojo/promise/all",
"dojo/domReady!"
], function (
Popup, PopupTemplate, IdentifyTask, IdentifyParameters, FeatureLayer, CheckBox, Select, ToggleButton, registry, on, query, domConstruct, All)
{
var popup = new Popup({
fillSymbol: new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 2), new dojo.Color([255, 255, 0, 0.25]))
}, dojo.create("div"));
var idButton = new ToggleButton({
label: "Identifier les entités",
showLabel: false,
iconClass: "identifyIcon",
checked: false,
onChange: function (val) {
//alert("test button clicked")
if (val) {
window.idHandler = on.pausable(window.myMap, "click", runIdentifies);
toggleButtonIcon(this);
console.log("Identify started");
// measurementActiveButton = dojo.query(".esriMeasurement .esriButton.esriButtonChecked .dijitButtonNode")[0]
// if(measurementActiveButton){
// measurementActiveButton.click();
// }
}
else {
window.idHandler.pause();
console.log("Identify paused");
}
//toggleButtonIcon(this);
}
}, "id_button");
idButton.startup();
function mapReady(map) {
//window.connect = dojo.connect(window.myMap, "onClick", runIdentifies);
window.idHandler = on.pausable(window.myMap, "click", runIdentifies);
}
function runIdentifies(evt) {
identifyResults = [];
idPoint = evt.mapPoint;
var layers = dojo.map(window.myMap.layerIds, function (layerId) {
return window.myMap.getLayer(layerId);
});
layers = dojo.filter(layers, function (layer) {
//console.log(layer.layerInfos[0].name);
if (layer.visibleLayers[0] !== -1) {
return layer.getImageUrl && layer.visible
}
}); //Only dynamic layers have the getImageUrl function. Filter so you only query visible dynamic layers
var tasks = dojo.map(layers, function (layer) {
return new IdentifyTask(layer.url);
}); //map each visible dynamic layer to a new identify task, using the layer url
var defTasks = dojo.map(tasks, function (task) {
return new dojo.Deferred();
}); //map each identify task to a new dojo.Deferred
var params = createIdentifyParams(layers, evt);
var promises = [];
for (i = 0; i < tasks.length; i++) {
promises.push(tasks[i].execute(params[i])); //Execute each task
}
var allPromises = new All(promises);
allPromises.then(function (r) { showIdentifyResults(r, tasks); });
}
function showIdentifyResults(r, tasks) {
var results = [];
var taskUrls = [];
var resultNames = [];
var identifySelect;
r = dojo.filter(r, function (result) {
return r[0];
});
for (i = 0; i < r.length; i++) {
results = results.concat(r[i]);
for (j = 0; j < r[i].length; j++) {
taskUrls = taskUrls.concat(tasks[i].url);
}
}
var idx = 0;
results = dojo.map(results, function (result, index) {
if (!result.layerName == "CADRILLAGE") {
var feature = result.feature;
var layerName = result.layerName;
var serviceUrl = taskUrls[index];
//resultNames[index] = result.layerName;
resultNames.push({
value: idx,
label: result.layerName
});
idx++;
feature.attributes.layerName = result.layerName;
identifySelect = dijit.byId("id_select");
identifySelect.removeOption(identifySelect.getOptions());
identifySelect.addOption(resultNames);
//var identifiedList = getIdentifiedList(resultNames);
//console.log(identifiedList);
if (layerName === 'E_HYDRAN') {
// var template = new PopupTemplate({
// title: "My Title",
// fieldInfos: [
// {fieldName: "Address", label: "<b>Address:</b>", visible: true},
// {fieldName: "City_1", label: "<b>City:</b>", visible: true}],
// showAttachments:true,
// });
var featureLayer = new FeatureLayer("http://srv-tit-testbd/arcgis/rest/services/Tests/PPT_EAU_GDB/MapServer/3",{
mode: FeatureLayer.MODE_ONDEMAND,
infoTemplate: template,
outFields: ["*"]
});
var objectId, el;
var pminfos = [];
var popUpMediaInfo;
objectId = feature.attributes.objectid;
featureLayer.queryAttachmentInfos(objectId, function (infos) {
var popUpInfo = {
title: "Attachment images",
description: "",
showAttachments: false
};
arrayUtils.window.myMap(infos, function(info)) {
if (!!info.url) {
popUpMediaInfo = {};
popUpMediaInfo.type = 'image';
popUpMediaInfo.value = {};
popUpMediaInfo.value.sourceURL = info.url;
popUpMediaInfo.value.linkURL = info.url;
popUpMediaInfo.caption = info.name;
pminfos.push(popUpMediaInfo);
}
});
popUpInfo.mediaInfos = pminfos;
var template = new PopupTemplate(popUpInfo);
//map.infoWindow.setTitle(objectId);
// el = document.createElement('img');
// if (infos[0].url) {
// el.setAttribute('src', infos[0].url);
// template.setContent(el);
// //map.infoWindow.show(e.screenPoint, map.getInfoWindowAnchor(e.screenPoint));
// }
});
//var template = new esri.InfoTemplate(layerName + "<br/><br/>NUMERO : ${NUMERO}<br/><br/>", "${*}");
feature.setInfoTemplate(template);
}
else {
// var template = new esri.InfoTemplate(layerName,
// "${*}");
//template.setTitle(identifiedList);
var template = new PopupTemplate({
title: "My Title",
fieldInfos: [
{fieldName: "Address", label: "<b>Address:</b>", visible: true},
{fieldName: "City_1", label: "<b>City:</b>", visible: true}],
showAttachments:true,
});
feature.setInfoTemplate(template);
}
var resultGeometry = feature.geometry;
var resultType = resultGeometry.type;
return feature;
}
});
results = results.filter(function(n){
return n != undefined
});
if (results.length === 0) {
window.myMap.infoWindow.clearFeatures();
} else {
window.myMap.infoWindow.setFeatures(results);
}
window.myMap.infoWindow.show(idPoint);
if (typeof identifySelect != 'undefined') {
identifySelect.on('change', function(evt) {
var identIndex = identifySelect.get("value");
console.log(identIndex);
window.myMap.infoWindow.select(identIndex);
});
}
return results;
}
function getIdentifiedList(options) {
identifySelect = new Select({
name: "identifySelect",
id: "id_select",
options: options
}, domConstruct.create("select"));
return identifySelect.domNode;
}
function createIdentifyParams(layers, evt) {
var identifyParamsList = [];
identifyParamsList.length = 0;
dojo.forEach(layers, function (layer) {
var idParams = new esri.tasks.IdentifyParameters();
idParams.width = window.myMap.width;
idParams.height = window.myMap.height;
idParams.geometry = evt.mapPoint;
idParams.mapExtent = window.myMap.extent;
idParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_VISIBLE;
var visLayers = layer.visibleLayers;
if (visLayers !== -1) {
var subLayers = [];
for (var i = 0; i < layer.layerInfos.length; i++) {
if (layer.layerInfos[i].subLayerIds == null)
subLayers.push(layer.layerInfos[i].id);
}
idParams.layerIds = subLayers;
} else {
idParams.layerIds = [];
}
idParams.tolerance = 7;
idParams.returnGeometry = true;
identifyParamsList.push(idParams);
});
return identifyParamsList;
}
function toggleButtonIcon(tool) {
//only the tools in the toolbar are dijit togglebuttons so can iterate thru them
var domNodes = query('.dijitToggleButton', this.domNode);
//var measureDivNodes = dojo.byId("measurementDiv");
//var measureNodes = query('.dijitButtonNode', measureDivNodes);
domNodes.forEach(function(domNode){
var togbtn = registry.getEnclosingWidget(domNode);
if (togbtn == tool) {
togbtn.attr("checked", true);
//console.log("Checked is true");
}
else {
togbtn.attr("checked", false);
//console.log("Checked is false");
}
});
}
});
... View more
10-03-2017
02:56 PM
|
0
|
20
|
5586
|
POST
|
Yes, the print service url returns the json through the proxy. And yes, the esri config proxy url is updated to reflect the public url.
... View more
09-15-2017
04:30 PM
|
0
|
1
|
392
|
POST
|
The proxy returns the json...I'm starting to think my problem comes from somewhere else. The only thing not working on the app is the print widget. As this is the only one that needs the proxy, I believed that was the issue. Racking my brain..any other suggestions?
... View more
09-15-2017
03:41 PM
|
0
|
3
|
1070
|
POST
|
This is what we have : <?xml version="1.0" encoding="utf-8" ?> <ProxyConfig allowedReferers="*" logFile="proxy_log.log" logLevel="INFO" mustMatch="false"> <serverUrls> <serverUrl url="http://services.arcgisonline.com" matchAll="true"/> <serverUrl url="http://ourpublicurl.com" matchAll="true"/> </serverUrls> </ProxyConfig>
... View more
09-15-2017
02:20 PM
|
0
|
7
|
1070
|
POST
|
Good question.. Is this to be done within the proxy.config file? In the JS app, the proxy is directed to the new url. Don't know if this helps answer your question, but I get the ok signal here: http://[yourmachine]:8080/Java/proxy.jsp?ping
... View more
09-15-2017
12:59 PM
|
0
|
9
|
1070
|
POST
|
I had a custom print service and print widget working (JSAPI 3.17) on an internal Tomcat 7 web server. The Java proxy had been successfully configured and installed. We just put this server into a dmz for public access and now the print tool no longer works. -No errors in the browser console -timeout in the arcgis for server logs (see below) -I am able to access the proxy, so that seems configured ok. Manually accessed the geoprocessing service via proxy and was able to return the json. Does anyone who understands all the ins and outs have any suggestions on what should be tweaked? EDIT: Just discovered something that may have been misleading. Just tested the app with a very light service (one layer) and the print task works fine. This must mean that the secured service used originally is too heavy (?) for the request. It contains quite a few layers (~50). Is this a reasonable assumption? Any ideas on how to work around this? Here's the log elements related to GP service time out: VERBOSE 15 sept. 2017 12:40:49 GPServerSync.Deactivate SPE_TOOLS/SPE_Print_Tool.GPServer VERBOSE 15 sept. 2017 12:40:49 GPServerSync.Activate SPE_TOOLS/SPE_Print_Tool.GPServer DEBUG 15 sept. 2017 12:40:45 com.esri.discovery.DiscoveryException: Error handling service request :Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.discovery.DiscoveryService.handleRequest(DiscoveryService.java:108) at com.esri.client.AGSRequest.handleRequest(AGSRequest.java:205) at com.esri.client.ServiceClient.handleRequest(ServiceClient.java:110) at com.esri.client.app.gpserver.GPTaskHandler$2.doOperation(GPTaskHandler.java:131) at com.esri.client.app.templates.OperationTemplate.execute(OperationTemplate.java:119) at com.esri.client.app.gpserver.GPTaskHandler.execute(GPTaskHandler.java:128) at com.esri.client.app.gpserver.GPTaskHandler.service(GPTaskHandler.java:62) at com.esri.rf.RServlet.service(RServlet.java:116) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: com.esri.arcgis.discovery.ejb.ArcGISServiceException: Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.arcgis.discovery.ejb.impl.GPServerBean.handleRequest(GPServerBean.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:162) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:144) at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:164) at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:92) at sun.reflect.GeneratedMethodAccessor378.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:162) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:144) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:136) at org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) at org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) at org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:196) at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:149) at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:71) at org.apache.openejb.server.ejbd.KeepAliveServer$Session.service(KeepAliveServer.java:213) at org.apache.openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:233) at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:66) at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91) at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ... 1 more Caused by: com.esri.arcgis.discovery.ejb.ArcGISServiceException: Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.arcgis.discovery.ejb.impl.GPServerSyncBean.handleRequest(GPServerSyncBean.java:77) at sun.reflect.GeneratedMethodAccessor379.invoke(Unknown Source) ... 28 more Caused by: com.esri.arcgis.discovery.ejb.ArcGISServiceException: Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.arcgis.discovery.ejb.util.EJBBase.handleRequestBase(EJBBase.java:573) at com.esri.arcgis.discovery.ejb.impl.GPServerSyncBean.handleRequest(GPServerSyncBean.java:74) ... 29 more Caused by: com.esri.arcgis.discovery.servicelib.AGSUsageTimeoutException: Le délai de la requête du serveur a expiré. Vérifiez que lexpiration du délai dutilisation est configurée correctement pour de telles requêtes. at com.esri.arcgis.discovery.servicelib.impl.ServiceImpl.dequeueResponse(ServiceImpl.java:328) at com.esri.arcgis.discovery.servicelib.impl.ServiceImpl.handleRequest(ServiceImpl.java:231) at com.esri.arcgis.discovery.servicelib.impl.RemoteServiceImpl.handleRequest(RemoteServiceImpl.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$2.run(Transport.java:202) at sun.rmi.transport.Transport$2.run(Transport.java:199) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:198) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) at com.sun.proxy.$Proxy42.handleRequest(Unknown Source) at com.esri.arcgis.discovery.ejb.util.EJBBase.handleRequestBase(EJBBase.java:500) ... 30 more Rest SEVERE 15 sept. 2017 12:40:45 Error performing execute operation Error handling service request :Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. Rest DEBUG 15 sept. 2017 12:40:44 Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. SPE_TOOLS/SPE_Print_Tool.GPServer DEBUG 15 sept. 2017 12:40:44 Folder and service ETags created from within the configuration store object, if unavailable. Admin
... View more
09-15-2017
12:46 PM
|
0
|
13
|
1783
|
POST
|
I am looking for a solution to give access to multiple secured ArcGIS for Server services without requiring that the user log in for each service in a Javascript 3.20 web map. I currently have four secure web services in my web map, and am required to give login and password four times. The services are all within one ArcGIS for Server folder, and the security is set on the folder level. The solution in this thread does not seem to use the Identify Manager module directly--is this correct? Some more details on what I'm trying to figure out: - Role A (and its users) has rights to all the services in Folder A - Role B (and its users) has rights to all the services in Folder B - The web app consumes services from Folder A and B What are my options for displaying only services in Folder A when user role A logs in, only services in Folder B for user role B?
... View more
06-21-2017
11:35 PM
|
0
|
0
|
732
|
POST
|
Hi, so the layerlist is collapsible out of the box? I didn't see that in the API...Can you point me in the right direction?
... View more
03-21-2017
04:36 PM
|
0
|
1
|
1197
|
POST
|
This works very well to deactivate the measure tool--I am trying to use it to deactivate the measure tool when an identify button is toggled. However, I'm getting some conflict with the identify handler I'm using. The code below starts and pauses the identify handler when the identify button is toggled (identify does not work and console prints out "Identify started" followed by "Identify paused". Can anyone see why this may be happening with the code posted below? var idButton = new ToggleButton({ label: "Identifier les entités", showLabel: false, iconClass: "identifyIcon", checked: false, onChange: function (val) { if (val) { window.idHandler = on.pausable(window.myMap, "click", runIdentifies); //runIdentifies is the identify function console.log("Identify started"); measurementActiveButton = dojo.query(".esriMeasurement .esriButton.esriButtonChecked .dijitButtonNode")[0] if(measurementActiveButton){ measurementActiveButton.click(); } } else { window.idHandler.pause(); console.log("Identify paused"); } } }, "id_button"); idButton.startup();
... View more
02-17-2017
05:35 PM
|
0
|
1
|
237
|
POST
|
Okay, yes...I just read that as well. I'm now confused by my options, but I'll probably open a new thread unless you have a quick tip.
... View more
02-01-2017
01:41 PM
|
0
|
1
|
809
|
POST
|
Do you know why dijit.registry.byClass may cause a TypeError? I'm getting dijit.registry.byClass is not a function. dijit/registry is already a requirement..
... View more
02-01-2017
01:05 PM
|
0
|
3
|
809
|
POST
|
I know this is a javascript question and not arcgis--but, wondering how you reconnect a saved handler? Not able to figure that out with the docs... I save my handler like this: window.myHandler = dojo.connect(window.myMap, "onClick", runIdentifies) Later, I do: dojo.disconnect(window.myHandler); Is there any way to do the following: dojo.connect(window.myHandler) This is because i'm having issues accessing the runIdentifies function from where I want to reconnect.
... View more
01-31-2017
01:01 PM
|
0
|
2
|
1055
|
POST
|
Okay, I see...Yeah, that's how we currently set user/role-based security (at the service level). But, considering the difficulty i'm having with the otb layer list widget, I was trying to see if there was another solution. So if i'm understanding correctly, layer-level security is not possible?
... View more
01-31-2017
11:02 AM
|
0
|
1
|
555
|
Title | Kudos | Posted |
---|---|---|
1 | 10-24-2017 01:01 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|