Problemas na serialização de um objeto

Boa tarde, ainda estou com problemas na hora de serializar um Objeto, quando estou passando a Request, ele me retorna um TEXTO, e da um erro, segue o código e o erro que está gerando.
package br.com.festivalRest.rest.authentication;

import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.core.Response;

import com.google.gson.Gson;

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import br.com.festivalRest.bd.conexao.Conexao;
import br.com.festivalRest.jdbc.JDBCAuthenticationDAO;
import br.com.festivalRest.objetos.User;

@Path("authenticationRest")
public class AuthenticationRest extends UtilRest {

public AuthenticationRest(){
}

@POST
@Path("/searchUser")
@Consumes(MediaType.APPLICATION_JSON)
public Response foundUser(String usuarioParam){
    try{

        Conexao conec = new Conexao();
        Connection conexao = conec.abrirConexao();
        JDBCAuthenticationDAO jdbcAuthentication = new JDBCAuthenticationDAO(conexao);

        Gson gson = new Gson();
        User user = gson.fromJson(usuarioParam, User.class);

        jdbcAuthentication.searchUser(user);
        conec.fecharConexao();

        return this.buildResponse("OK");

    }catch(Exception e){
        e.printStackTrace();
        return this.buildErrorResponse("Falha");
    }
}

}

function foundUser(){

   $.ajax({
    type: "POST",
    url: "rest/authenticationRest/searchUser",
    data: $("#authentication").serialize(),
    contentType: "application/json",
    success:function(date){

    },error(err){
        console.log(err);
        alert("Erro ao processar a requisição " + err.responseText);
    }

   });
}


com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:852)
at com.google.gson.Gson.fromJson(Gson.java:801)
at com.google.gson.Gson.fromJson(Gson.java:773)
at br.com.festivalRest.rest.authentication.AuthenticationRest.foundUser(AuthenticationRest.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1368)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:213)
... 47 more

Olá,
printa no console a string que vc ta recebendo antes da conversão, pra ver se é um Json válido. Ai posta aqui.

Opa, ele não está me retornando um JSON valido, está me retornando um STRING, assim: login=admin&senha=123, porém não sei mais o que posso fazer para que ele retorne o JSON, ja usei a biblioteca Gson pra converter na resposta e nada .

Então o problema está na forma como vc envia isso pro server. Ou vc não deveria estar lendo no server como json e sim como parametros.

Fiz testes no POSTMAN, ele está enviando no formato errado, não está no JSON, mas eu não entendo o porque, se ja coloquei json tanto no ajax, como fiz a conversao lado servidor

No postman ele me retorna a resposta correta:
Imagem

@Wellington_Gallo o método serializa do JQuery serializa pro formato URL Encoded, por isso está chegando dessa forma…

Opa @Eldius, tens alguma dica ou alguma forma para que eu possa receber no formato correto?

Você poderia colocar um objeto JSON no atributo data

function foundUser(){

   $.ajax({
    type: "POST",
    url: "rest/authenticationRest/searchUser",
    data: {"user": "myUser", "pass": "myPass"},
    contentType: "application/json",
    success:function(date){
    },error(err){
        console.log(err);
        alert("Erro ao processar a requisição " + err.responseText);
    }
   });
}

PAssando o id dos campos?

Passando um JSON…

Sim mas eu digo os dados que eu pego do formulario, eu passo alguma variavel, ou algum campo dentro do json? Os meus dados não podem ser fixos

Algo desse tipo:

var dados = {
    "user": $("#inputUser").val()
    , "pass": $("#inputPass").val()
}