私のサーバーコードは次のとおりです(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:""、local:"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>
コードを参照すると、bit.ly/1ed06bS の RESTEasy ソースでこのメソッド getEntity メソッドが見つかりました。しかし、これが例外をスローしている理由はわかりません。
正しく動作するシナリオ (例外をスローしないシナリオ) と正しく動作しないシナリオ (上記のシナリオ) のオブジェクト値を比較したところ、オブジェクト値に違いは見つかりませんでした。
デバッグログを添付します。最初の列は正しく機能しているシナリオで、2 番目の列は正しく機能していないシナリオです。PDFはこちらhttp://www.scribd.com/doc/157390722/Debug
この行が例外をスローする理由を見つけるのを手伝ってもらえますか