Запрос OpenLayers wfs -> журнал геосервера: вместо getFeature getServiceInfo - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть vectorLayer с протоколом WFS и стратегией BBOX. Который изначально загружает данные так, как должен. Но если я перетаскиваю карту, журнал геосервер просто скажет: {curr date} INFO [geoserver.wfs] - Запрос: getServiceInfo вместо getFeature (как это происходит при первоначальном запросе). Моя проблема в том, что на карте ничего не происходит. Если я установлю «обновить» eventHandler на слой, он не будет срабатывать ... Нужно ли обновлять карту / слой где-нибудь еще?

var map;
function init(){
  ..
  map = new OpenLayers.Map('map', options);
  var gsat = new OpenLayers.Layer.Google(...);
  map.addLayer(gsat);
  var lonlat = new OpenLayers.LonLat(...);
  map.setCenter(lonlat, 18);
  loadLayer();
  ..
}
function loadLayer(){
  loadLayerFunc();
  ...
}

function loadLayerFunc(){
  var wfsLayer = loadLayerFunc();
  wfsLayer.events.on({...});
  map.addLayer(wfsLayer);
  ...
}
function loadLayerFunc(){
var bboxStrategy = new OpenLayers.Strategy.BBOX({ratio: 0.8});
wfsLayer = new OpenLayers.Layer.Vector("wfsLayer", {
  strategies: [bboxStrategy],
  protocol: new OpenLayers.Protocol.WFS({
  version: "1.1.0",
  srsName: "EPSG:4326",
  url: wfs_url,
  featureType: "positions_test",
  featurePrefix: "feature",
  geometryName: "the_geom",
  schema: "http://localhost:8080/geoserver/wfs?request=DescribeFeatureType&service=WFS&typeName=ws:positions",
  maxFeatures: 1000
}),
    projection: geoProjection
  });
  return wfsLayer;
}

Если я запускаю тот же сценарий на другом сервере, веб-консоль firefox уже при первом запросе сообщает мне «Невозможно отобразить ответы типа (null)» .....? Он даже ничего не показывает, хотя я только что изменил URL.

РЕДАКТИРОВАТЬ: кажется, что нулевой ответ вызван сервером Apache tomcat без конфигурации прокси. Можно ли запустить его без прокси, если файлы js находятся в аналогичной папке apache, как на геосервере? Наконец мне нужно запустить его на кота. Является ли ошибка "файл proxy.cgi неправильно сформирована" лучше, чем нулевой ответ? Я хотел бы решить эту проблему без прокси-сервера, если это возможно, но похоже, что включение прокси-сервера приближает меня к тому месту, где я хочу.

1 Ответ

0 голосов
/ 15 декабря 2011

ваша конечная точка WFS (GeoServer) должна быть расположена относительно вашей страницы, в противном случае будет иметь ту же политику происхождения . Вы можете попробовать исправить это, используя apache и mod_proxy или mod_jk. С помощью этих библиотек вы можете монтировать геосервер, как он развернут в tomcat, относительно вашего приложения.

Если это невозможно в вашем приложении, вы должны использовать прилагаемый прокси-скрипт .

И да, геосервер отображает getServiceInfo при выполнении запросов WFS в своих файлах журнала. Я заметил такое же поведение с геосервером 2.1.1

...