Я разрабатываю приложение Spring RESTful. Когда пользователь щелкает ссылку Next >>
, запрос JQuery AJAX GET
запускается с функцией ajaxViewCusts()
:
var ajaxViewCusts = function(){
var lastRowId = document.getElementById("tblCustomerList").getAttribute('data-lastRowEncId');
var theUrl = "${pageContext.request.contextPath}/customerRest/customersList?lastRowId="+ lastRowId +"&limit="+ $("select#limitSelect").val();
/*
In Google Console :
http://localhost:8080/ShubhOnSpring/customerRest/customersList?lastRowId=6&limit=1
gets fired with
Status Code : 500
*/
$.ajax({
type: 'GET',
url: theUrl,
contentType: 'application/json',
dataType: 'application/json',
success: function( response ){
console.log('----------------> Success: ajax()');
console.log( response );
},
error: function( response ){
console.log('Error: ajax() : ---------------->');
console.log( response );
}
});
}
Мой контроллер Получает этот запрос на получение и также печатает сообщения на консоли STS,
@Controller
@RequestMapping("/customerRest")
public class CustomerRestController {
@Autowired
private ICustomerManager theCustomerManager;
@GetMapping(
value="/customersList", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.ALL_VALUE )
public @ResponseBody CustomerRestResponse getCustomers(
@RequestParam( value = "lastRowId", defaultValue = "0" ) String lastRowId,
@RequestParam( value = "limit", defaultValue = "2" ) String limit ,
HttpServletRequest req , HttpServletResponse res )
{
System.out.println("INFO: Returning customers List...for lastRowId : "+ lastRowId + ", Limit : " + limit + " :--- CustomerRestController::getCustomers(..)");
CustomerRestResponse restResponse = null; // new CustomerRestResponse();
// ICustomerManager theCustomerManager = new CustomerManager();
restResponse = theCustomerManager.getCustomers( lastRowId,limit );
System.out.println("INFO: Printing Fetched Result : \n"+ restResponse.toString() );
return restResponse;
}
}
В окне вывода консоли STS я получил:
// Output in console :
----------------------
INFO: Returning customers List :: com.shubh.mvc.rest.controller.CustomerRestController::getCustomers()
INFO: Printing Fetched Result :
CustomerRestResponse [responseStatus=true, listCustomers=[Customer [id=7, firstName=GGG, lastName=DDD, email=EEE]]]
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver logException
WARNING: Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class com.shubh.mvc.rest.model.CustomerRestResponse] with preset Content-Type 'null']
Я получаю это warning
, хотя у меня есть включил Jackson Core
и Jackson Databind
JAR-файлы в моей папке WEB-INF> lib для Java преобразования объекта в JSON объекта и наоборот:
Это мой класс модели ответа:
package com.shubh.mvc.rest.model;
import java.util.List;
import com.shubh.mvc.model.Customer;
public class CustomerRestResponse {
private Boolean responseStatus;
private List<Customer> listCustomers;
public CustomerRestResponse() {
}
public Boolean getResponseStatus() {
return responseStatus;
}
public void setResponseStatus(Boolean responseStatus) {
this.responseStatus = responseStatus;
}
public List<Customer> getListCustomers() {
return listCustomers;
}
public void setListCustomers(List<Customer> listCustomers) {
this.listCustomers = listCustomers;
}
@Override
public String toString() {
return "CustomerRestResponse [responseStatus=" + responseStatus + ", listCustomers=" + listCustomers + "]";
}
}
Моя конфигурация. xml файл:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="https://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
https://www.springframework.org/schema/tx
https://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.shubh.mvc.controllers" />
<mvc:annotation-driven/>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<mvc:resources location="/resources/" mapping="/resources/**"></mvc:resources>
</beans>
Я не могу получить успешный ответ от AJAX, поскольку это в консоли STS появляется предупреждение, когда я нажимаю Next>>
и запускаю AJAX Call:
Я также проверил этот , но мне это не помогло, я думаю, contentType
и dataType
со стороны клиента и Backend не совпадают.
Так может кто-нибудь сказать мне, как это исправить и добиться успеха? ответ (200) и данные обратно от контроллера .?