I am implementing gs:Nearest WPS process available in GeoServer using openlayers in OpenGeo Suite SDK.
I am trying to implement this process as a openlayers plugin to hook into my custom web mapping application.Though there is many tutorial on how to implement JTS:Split and JTS:Buffer process there is no tutorial for any other wps process.This Process Require Feature collection or Vector Layer as a input. 

Firebug Error Geometry.CLASS_NAME undefined i think this is because I am not able to collect all the features from the vector layer.

So How can I create a vector layer using OpenLayers.Layer.Vector????

 

    var test = Ext.extend(gxp.plugins.Tool, {

    ptype: 'myapp_test',
    
    /** Initialization of the plugin */
    init: function(target) {
        test.superclass.init.apply(this, arguments);
		
        // Create a WPSClient instance for use with the local GeoServer
        this.wpsClient = new OpenLayers.WPSClient({
            servers: {
                local: '/geoserver/wps'
            }
        });
	 

	
        // Add action buttons when the viewer is ready
        target.on('ready', function() {
            // Get a reference to the vector layer from app.js
            this.layer = target.getLayerRecordFromMap({
                name: 'sketch',
                source: 'ol'
            }).getLayer();
          //I am not getting Feature Collection or can not create Vector layer
           this.layer2 = new OpenLayers.Layer.Vector("parks", {
                    strategies: [new OpenLayers.Strategy.Fixed()],
					projection: new OpenLayers.Projection("EPSG:4326"),
                    protocol: new OpenLayers.Protocol.WFS({
						version: "1.1.0",
                        url:  "/geoserver/wfs",
						featurePrefix: "medford",
                        featureType: "parks",
                        featureNS: "http://medford.opengeo.org"
                    })
                });

            // Some defaults
            var actionDefaults = {
                map: target.mapPanel.map,
                enableToggle: true,
                toggleGroup: this.ptype,
                allowDepress: true
            };

            this.addActions([
                
                // Action for splitting by drawing a line
                new GeoExt.Action(Ext.apply({
                    text: 'TEST',
                    control: new OpenLayers.Control.DrawFeature(
                        this.layer, OpenLayers.Handler.Point, {
                        eventListeners: {
                            featureadded: this.nearf,
                            scope: this
                        }
                    })
                }, actionDefaults))
            ]);
        }, this);
    },

    /** Handler function for splitting geometries */
       nearf: function(evt) {
	 var wkt = new OpenLayers.Format.WKT();
	 var pt=wkt.write(evt.feature);
	//var f =JSON.parse(this.request.responseText);
	//var myline = OpenLayers.Geometry.fromWKT('point(117 22)');
	 var g = new OpenLayers.Format.GeoJSON(); 
	 var f=g.read(this.request.responseText);
	 this.wpsClient.execute({
                    server: 'local',
                    process: 'gs:Nearest',
                    inputs: {features:this.layer2, point:pt},
                    success: this.addResult
                });
	
    },

    /** Helper function for adding process results to the vector layer */
    addResult: function(outputs) {
        alert('Hello World');
    }
    });

    Ext.preg(test.prototype.ptype, test);