Hi Isomorphic,
I'm following the documentation for configuring RestDataSource using Spring controllers. I'm getting the error in the title when performing a fetch operation.
The JSON Response is as follows (shown in Dev console), which pretty much is the same format as in the RestDataSource javadoc:
The DataSource definition:
The controller:
The issue happens in the transformResponse method
In compiled mode, the error happens in ISC_DataBinding.js (line 2721 if it helps)
Any help would be greatly appreciated.
Browsers: Any
GWT Version: 2.5.1
SmartGWT version: SmartClient Version: v9.1p_2014-03-25/LGPL Development Only (built 2014-03-25)
I'm following the documentation for configuring RestDataSource using Spring controllers. I'm getting the error in the title when performing a fetch operation.
The JSON Response is as follows (shown in Dev console), which pretty much is the same format as in the RestDataSource javadoc:
Code:
{"response":{"status":0,"startRow":0,"endRow":1,"totalRows":1,"data":[{"apellido":"last_name","nombre":"name","username":"uname","email":"carlep@live.com.ar","password":""}]}}
Code:
package com.sgrvg.client.main.ds; import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.data.OperationBinding; import com.smartgwt.client.data.RestDataSource; import com.smartgwt.client.data.fields.DataSourcePasswordField; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.types.DSDataFormat; import com.smartgwt.client.types.DSOperationType; import com.smartgwt.client.types.DSProtocol; /** * @author pabloc * * DataSource para administracion de usuarios (modificar datos / password) * */ public class UserDS extends RestDataSource { private static UserDS instance = null; public static UserDS getInstance() { if (instance == null) { instance = new UserDS(); } return instance; } private UserDS() { super(); setClientOnly(Boolean.FALSE); // FIELDS DataSourceTextField username = new DataSourceTextField("username", "Usuario", 50, true); DataSourceTextField nombre = new DataSourceTextField("nombre", "Nombre", 45, true); DataSourceTextField apellido = new DataSourceTextField("apellido", "Apellido", 45, true); DataSourceTextField email = new DataSourceTextField("email", "E-Mail", 255, false); // En cambio de password poner como hidden y luego de la validacion modificarle el valor y hacer el saveData DataSourcePasswordField currentPassword = new DataSourcePasswordField("password", "Password", 50, true); setFields(username, nombre, apellido, email, currentPassword); // DSRequest properties DSRequest updateRequest = new DSRequest(DSOperationType.UPDATE); updateRequest.setHttpMethod("PUT"); updateRequest.setContentType("application/json"); // OPERATION BINDINGS OperationBinding fetch = new OperationBinding(DSOperationType.FETCH, "service/user"); fetch.setDataProtocol(DSProtocol.GETPARAMS); fetch.setDataFormat(DSDataFormat.JSON); OperationBinding update = new OperationBinding(DSOperationType.UPDATE, "service/user"); update.setDataProtocol(DSProtocol.POSTMESSAGE); update.setDataFormat(DSDataFormat.JSON); update.setRequestProperties(updateRequest); setOperationBindings(fetch, update); } }
Code:
@RequestMapping(value="/user", method=RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE ) @ResponseBody public DSResponse getUserData(final HttpServletRequest request, Principal principal) { final String currentUser = principal.getName(); Usuario usr = usrManager.encontrarUsuarioPorUsername(currentUser); return new DSResponse(usr); }
In compiled mode, the error happens in ISC_DataBinding.js (line 2721 if it helps)
Any help would be greatly appreciated.
Browsers: Any
GWT Version: 2.5.1
SmartGWT version: SmartClient Version: v9.1p_2014-03-25/LGPL Development Only (built 2014-03-25)
Comment