0

我得到一个 ClassCastException

java.lang.ClassCastException: java.lang.String cannot be cast to com.mcruiseon.common.contracts.IRegistrationResponse
    at com.mcruiseon.common.message.response.RegistrationResponse.getRegistrationResponse(RegistrationResponse.java:43)
    at com.mcruiseon.carpool4all.RegistrationService.post(RegistrationService.java:81)

基于泽西岛的服务代码

@POST
@Path ("Request")
@Consumes({ MediaType.APPLICATION_JSON })
public Response post(JAXBElement<ClientIdentityConcrete> element) {
    RegistrationRequest request = new RegistrationRequest((ClientIdentityConcrete)(element.getValue()));
    RegistrationResponse response ;
    try {
        clientSession = new ClientSession(God.mCruiseOnServer) ;
    } catch (InvalidServerDNSorIPException e) {
        e.printStackTrace();
        return Response.serverError().build() ;
    }
    sessionKey = sessionManager.setClientSession(clientSession) ;
    clientSession.setSessionKey(sessionKey) ;

    clientSession.getSendQueue().sendRequest(request) ;
    try {
        response = (RegistrationResponse)clientSession.waitAndGetResponse(request) ;
    } catch (WaitedLongEnoughException e) {
        return Response.serverError().build() ;
    } catch (UnableToResolveResponseException e) {
        return Response.serverError().build() ;
    }

// Getting Exception in line below
    return Response.ok(response.getRegistrationResponse()).build();
}

支持代码

public IRegistrationResponse getRegistrationResponse() {
        return ((IRegistrationResponse) super.getMessage());
    }

public interface IRegistrationResponse {
    public String getIdentityHash() ;
    public String getSessionKey() ;
}
4

1 回答 1

0

我的服务器返回一个字符串,我忘记用最新的 jar 上传我的服务器。一旦我这样做了,ClassCastException 就消失了。

于 2012-10-24T03:59:36.397 回答