2013-08-01 2 views
0

Код моего сервера выглядит следующим образом (он использует resteasy). Ответ пришел из моего приложения nexus oss, в котором используется restlet. Этот ответ обрабатывается с помощью следующего метода, который выбрасывает исключениеResteasy выбрасывает исключение из метода getEntity()

private <T> T get(String path, Class<T> responseClass) throws IntegratedAppFault { 

    ClientRequest clientRequest = new ClientRequest(this.mEndPoint + path); 
    addHeaderToRequest(clientRequest); 
    ClientResponse<T> response; 
    try { 
     response = clientRequest.get(responseClass); 
     if (response.getStatus() == 200) { 
      return response.getEntity(); // Line throwing exception 
     } else { 
      throw getFault(response); 
     } 
    } catch (Exception e) { 
     throw new IntegratedAppFault(e.getMessage()); 
    } 

Когда сервер получает исключение, он приходит в этот метод и, наконец, исключение бросает на response.getEntity(). Исключением является следующим

javax.xml.bind.UnmarshalException: неожиданный элемент (Uri: "", местные: "com.collabnet.teamforge.ia.types.GetConfigurationParametersResponse"). Ожидаемые элементы < {http://www.collab.net/teamforge/integratedapp} CreateProjectConfigurationRequest>, < {http://www.collab.net/teamforge/integratedapp} CreateTemplateRequest>, < {http://www.collab.net/teamforge/integratedapp} CreateTemplatizedProjectConfigurationRequest>, < {http://www.collab.net/teamforge/integratedapp} CreateUserRequest>, < {http://www.collab.net/teamforge/integratedapp} DeleteProjectConfigurationRequest>, < {http://www.collab.net/teamforge/integratedapp} DetailedSCMPostCommitRequest>, < {http://www.collab.net/teamforge/integratedapp } DetailedSCMPreCommitRequest>, < {http://www.collab.net/teamforge/integratedapp} DetailedSCMPreCommitResponse>, < {http://www.collab.net/teamforge/integratedapp} EditProjectConfigurationRequest>, < {http://www.collab.net/teamforge/integratedapp} GetConfigurationParametersRequest>, < {http://www.collab.net/teamforge/integratedapp} GetConfigurationParametersResponse>

Я просмотрел код нашел, что этот метод метод GetEntity в источнике Resteasy в bit.ly/1ed06bS. Но не знаю, почему это бросает исключение.

Я просто сопоставил значения объектов для правильно работающего сценария (который не генерирует исключение) и неправильно работает сценарий (упомянутый выше сценарий) и не нашел разницы в значениях объекта.

Прилагаю журнал отладки. Первый столбец - правильно работающий сценарий, а второй столбец - неправильный рабочий сценарий. PDF здесь http://www.scribd.com/doc/157390722/Debug

Можете ли вы помочь мне в поиске, почему эта линия бросает исключение

ответ

1

На основании исключения вы получаете, JAXB ожидает вашего запроса XML, чтобы начать с одного из следующих тегов и нее не.

  1. CreateProjectConfigurationRequest
  2. CreateTemplateRequest
  3. CreateTemplatizedProjectConfigurationRequest
  4. CreateUserRequest
  5. DeleteProjectConfigurationRequest
  6. DetailedSCMPostCommitRequest
  7. DetailedSCMPostCommitResponse
  8. DetailedSCMPreC ommitRequest
  9. DetailedSCMPreCommitResponse
  10. EditProjectConfigurationRequest
  11. GetConfigurationParametersRequest
  12. GetConfigurationParametersResponse
Смежные вопросы