【发布时间】:2013-08-01 08:01:09
【问题描述】:
我的服务器代码如下(它使用resteasy)。响应来自我使用 restlet 的 nexus oss 应用程序。此响应正在由以下引发异常的方法处理
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> p>
我浏览代码发现这个方法 getEntity 方法在 RESTEasy 源代码中 bit.ly/1ed06bS。但是不知道为什么会抛出异常。
我刚刚比较了正确工作场景(不抛出异常)和错误工作场景(上面提到的这个场景)的对象值,发现对象值没有差异。
我会附上调试日志。第一列是正确的工作场景,第二列是错误的工作场景。 pdf在这里http://www.scribd.com/doc/157390722/Debug
你能帮我找出这条线抛出异常的原因吗
【问题讨论】:
标签: rest resteasy restlet restlet-2.0