我的服务器代码如下(它使用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>
我浏览了代码,发现这个方法 getEntity 方法在 RESTEasy 源代码中位于 bit.ly/1ed06bS。但是不知道为什么会抛出异常。
我只是比较了正确工作场景(不抛出异常)和错误工作场景(上面提到的这个场景)的对象值,发现对象值没有差异。
我将附上调试日志。第一列是正确的工作场景,第二列是错误的工作场景。pdf在这里http://www.scribd.com/doc/157390722/Debug
你能帮我找出这条线抛出异常的原因吗