Java AJAX发布到Webservice REST服务不起作用
我发现了一些与我有关的问题,但没有一个对我有帮助。。。 所以,我有一个webservice,我用它来做这件事。当我尝试使用ajax在上面发布一些数据时,它似乎甚至没有进入我的Web服务(我有Web服务的日志,并且没有出现任何来自任何地方的调用) 这是我的Java类:Java AJAX发布到Webservice REST服务不起作用,java,jquery,ajax,web-services,jersey,Java,Jquery,Ajax,Web Services,Jersey,我发现了一些与我有关的问题,但没有一个对我有帮助。。。 所以,我有一个webservice,我用它来做这件事。当我尝试使用ajax在上面发布一些数据时,它似乎甚至没有进入我的Web服务(我有Web服务的日志,并且没有出现任何来自任何地方的调用) 这是我的Java类: @Path(WebConstants.VEHICLE_URI) public class VehicleResource extends AbstractResource { private static final L
@Path(WebConstants.VEHICLE_URI)
public class VehicleResource extends AbstractResource {
private static final Logger logger = LoggerFactory.getLogger(VehicleResource.class);
@POST
@Path(WebConstants.VEHICLE_GET_BY_USER)
@Consumes(MediaType.APPLICATION_JSON + CHARSET)
@Produces(MediaType.APPLICATION_JSON + CHARSET)
public Response getByUser(VehicleGetListForm form){
try {
logger.info("VehicleResource - getForUser - Start get vehicle for user.");
if (validator.hasErrors(form)) {
ValidationResponse validationResponse = validator
.getFieldErrors(form);
validationResponse.setMessage(MessageConstants.GENERIC_VALID);
return Response.ok(validationResponse).build();
}
List<ErrorMessage> errors = new ArrayList<ErrorMessage>();
String[] userTimestamp = rsaEncryption.decrypt(form.getUserTimeStamp()).split("\\ ");
String userGet = userTimestamp[0];
String userTime = userTimestamp[1];
if((userGet.length()<1) || (userGet.length()>64)){
ValidationResponse validationResponse = new ValidationResponse();
errors = new ArrayList<ErrorMessage>();
errors.add(new ErrorMessage("Usuário", MessageConstants.USER_INVALID_MESSAGE));
validationResponse.setErrorMessageList(errors);
validationResponse.setCode(2);
validationResponse.setMessage(MessageConstants.GENERIC_VALID);
return Response.ok(validationResponse).build();
}else{
User user = serviceLocator.getUserService().findByName(userGet);
if(user == null){
user = saveUser(userGet);
}
Long timeGet = Long.valueOf(userTime).longValue();
Timestamp timestampGet = new Timestamp(timeGet);
Boolean valid = validatorTimestamp.validateTimestampAuth(user.getDatLastAuth(), timestampGet);
if (valid){
authUser(user, false);
String typeVehicle = "";
Integer typeInt = Integer.parseInt(form.getType());
if(EnumVehicle.CAR.getValueInt().equals(typeInt))
typeVehicle = EnumVehicle.CAR.getValue();
else if(EnumVehicle.MOTO.getValueInt().equals(typeInt))
typeVehicle = EnumVehicle.MOTO.getValue();
else if(EnumVehicle.TRUCK.getValueInt().equals(typeInt))
typeVehicle = EnumVehicle.TRUCK.getValue();
// Valid type
if(typeVehicle.isEmpty()){
responseService.setCode(2);
responseService.setMessage(MessageConstants.VEHICLE_TYPE_INVALID);
return Response.ok(responseService).build();
}
List<Vehicle> vehicles = serviceLocator.getVehicleService().lisByUser(Integer.parseInt(form.getStart()), Integer.parseInt(form.getRows()), typeVehicle, user);
if (vehicles == null || vehicles.size() == 0){
responseService.setCode(1);
responseService.setMessage(MessageConstants.GENERIC_NOT_FOUND);
return Response.ok(responseService).build();
}
List<VehicleBean> list = VehicleBean.toListBean(vehicles);
VehicleReturnBean returnBean = VehicleReturnBean.toBean(list, user.getDatLastUpdate());
return Response.ok(returnBean).build();
}else{
responseService.setCode(2);
responseService.setMessage(MessageConstants.USER_INVALID_TIMESTAMP);
return Response.ok(responseService).build();
}
}
} catch (Exception e) {
logger.error("Error on get all State", e);
responseService.setException(MessageConstants.GENERIC_ERROR_MESSAGE);
}
return Response.ok(responseService).build();
}
有人知道这里有什么问题吗
非常感谢各位的关注。我会确保您的服务被正确地托管:1。将get方法添加到web服务,并使用浏览器执行简单的get。2.使用fiddler[(或其他允许您撰写post消息的工具)并将其发布到您的服务方法。3.使用chrome或firefox开发工具逐步完成javascript代码。最后,如果您在chrome或firefox中调试当前代码,您是否在代码中看到警报弹出?我已经尝试过了,找不到任何解决方案:(,无论如何..谢谢:)
$(document).ready(function() {
var dataJ = {"userTimeStamp":"3244a58ad474a924e915c77ecde54376c8985b0616a68b0a71a4d263a43d91dbfc7a9a4573510d546133b7a0ff26d2c2e58cd54939b8674a12f2ca59b8b803333b98726fbf09cf6a33dd53e47d683c0044b1d326a71c83e54dfdee3227d7de9ada24164ef8bd8580e9c200372ce1f62494cc2744161c4cf8a76a2b2605f1e859","brandmodel":"gol","type":"1","start":"1","rows":"10"};
$.ajax({
url: 'http://localhost:8280/rest/fipe/get/search',
type: 'POST',
data: JSON.stringify(dataJ),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function(jqXHR, textStatus, errorThrown){
alert('Success');
},
error: function(jqXHR, textStatus, errorThrown){
alert("jqXHR - " + jqXHR.statusText + "\n" +
"textStatus - " + textStatus + "\n" +
"errorThrown - " + errorThrown);
}
});});