AJAX POST para Webservice REST (Jersey) não funcionando

Java

26/05/2015

Olá pessoal,

Possuo um webservice feito em java usando o framework Jersey.

Estou criando umas paginas que iram fazer a chamada dele via Ajax, entretanto quando faço o POST usando ajax para esse meu webservice, ele parece se quer "bater" no meu webservice.

Aqui segue a classe do webservice feita usando Jersey:

@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();
    }


E aqui segue minha chamada AJAX:

$(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);
    }
});
});


Alguem tem ideia do porque isso está acontecendo?

Meu webservice stá rodando no jetty (plugin do maven) (http://localhost:8280) e meu site que faz a chamada dele está rodando no tomcat (do netbeans) (http://localhost:8084)

Muito obrigado!!
Diego Lima

Diego Lima

Curtidas 0
POSTAR