This article and “product”
http://www.codeproject.com/KB/web-security/HTTPReverseProxy.aspx provided a
pretty workable solution for reading from WFS.GeoServer:8080 within a IIS:80
app. It lets me create an IIS webapp /ows which points at my :8080/ows
endpoint. I can successfully communicate to http://smartmonkeys.ca/ows/ for
WFS/WMS etc. 

It works great for reading features, but I’m having some issues committing
to my feature stores, which I think might be due to the way that the proxy
has me configuring my layer: 

        var vlayer = new OpenLayers.Layer.Vector( 
                                "vector test", 
                                { 
                                strategies: [new
OpenLayers.Strategy.Fixed(), saveStrategy], 
                                protocol: new OpenLayers.Protocol.WFS({ 
                                                url:
"/ows?service=wfs&version=1.1.0&request=getFeature&typeName=Water_Points", 
                                                service: "wfs", 
                                                version: "1.1.0", 
                                                request: "getFeature", 
                                                featureType: "Water_Points", 
                                                featureNS:
"http://smartmonkeys.ca:8080/geoserver/";, 
                                                srsName: "EPSG:4326" 
                                }) 
                });

I basically have to put all of the request parameters into the protocol URL
or else I don’t get anything back. If any of the parameters are left out,
Fiddler whines about the missing service, request, and typeName parameters
(respectively) until I include them in the URL. Furthermore, I have to leave
all of these parameters (plus the others) in as individual options as well. 

When I go to commit DELETES, EDITS and UPDATES through my saveStrategy
nothing happens to individual features – Fiddler shows me getting the entire
set back, untouched, as a response. 

Code behind the Save control follows. Yes, it’s GeoExt, but the core bits
are OpenLayers. Any pointers would be grately appreciated. 

The whole :8080/:80 issue is stumping a lot of people in the
GeoServer/GeoExt/OpenLayers world, I’ll happily contribute what I can back
to each of the lists collectively. 

SFS 

            // ==================================== 
                // Main Panel 
                // ==================================== 

                // map 
                
                var drawControl = new OpenLayers.Control.DrawFeature(vlayer,
OpenLayers.Handler.Point, {handlerOptions: {multi: false}}); 
                var modifyControl = new
OpenLayers.Control.ModifyFeature(vlayer); 
                                
                var mapPanel = new GeoExt.MapPanel({ 
                                region: 'center', 
                                map: map, 
                                bbar: [ 
                                                new GeoExt.Action({control:
drawControl, text: "New", enableToggle: true}), 
                                                {text: "Delete", handler:
function() {
gridPanel_SEKID_Water_Points.getSelectionModel().each(function(rec) { var
feature = rec.get("feature"); modifyControl.unselectFeature(feature);
store.remove(rec); if (feature.state !== OpenLayers.State.INSERT)
{feature.state = OpenLayers.State.DELETE; layer.addFeatures([feature]);} })
} }, 
                                                "->", 
                                                { text: "Save", handler:
function() {fStore_SEKID_Water_Points.commitChanges(); saveStrategy.save();}
} 
                                ] 
                }); 
                                
                mapPanel.map.addControl(drawControl); 
                mapPanel.map.addControl(modifyControl); 
                modifyControl.activate(); 
                
                // feature stores and grids 

                var fStore_SEKID_Water_Points = new
GeoExt.data.FeatureStore({ 
                    fields: [ 
                                {name: "Entity", type: "string"}, 
                                {name: "Handle", type: "string"}, 
                                {name: "Layer", type: "string"} 
                    ], 
                    layer: vlayer, 
                    addFeatureFilter: function(feature) { return
feature.state !== OpenLayers.State.DELETE; } 
                }); 

                var gridPanel_SEKID_Water_Points = new
Ext.grid.EditorGridPanel({ 
                                region: 'south', 
                                title: 'Map Data', 
                                split: true, 
                                collapsible: true, 
                                height: 300, 
                                minSize: 100, 
                                maxSize: 500, 
                                store: fStore_SEKID_Water_Points, 
                                sm: new
GeoExt.grid.FeatureSelectionModel({selectControl:
modifyControl.selectControl, singleSelect: true}), 
                                cm: new Ext.grid.ColumnModel ({ defaults:
{sortable: true, editor: {xtype: "textfield"}}, columns: [ {header:
"Entity", dataIndex: "Entity"}, {header: "Handle", dataIndex: "Handle"},
{header: "Layer", dataIndex: "Layer"} ] }), 
                                listeners: { afteredit: function(e) { var
feature = e.record.get("feature"); if (feature.state !==
OpenLayers.State.INSERT) { feature.state = OpenLayers.State.UPDATE; } } } 
                }); 
                
                var mainPanel = new Ext.Panel({ 
                                region: 'center', 
                                layout: 'border', 
                                border: false, 
                                items: [mapPanel,
gridPanel_SEKID_Water_Points] 
                });                

Samuel Smith 
Groundlevel Geographics [DBA] 
-- 
View this message in context: 
http://osgeo-org.1803224.n2.nabble.com/OpenLayers-to-GeoServer-8080-OWS-in-ASP-Net-on-IIS-80-tp5541174p5541174.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to