0

私のサーバーコードは次のとおりです(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

この行が例外をスローする理由を見つけるのを手伝ってもらえますか

4

1 に答える 1

1

受け取った例外に基づいて、JAXB はリクエスト xml が次のタグのいずれかで始まることを期待していますが、そうではありません。

  1. CreateProjectConfigurationRequest
  2. CreateTemplateRequest
  3. CreateTemplateizedProjectConfigurationRequest
  4. CreateUserRequest
  5. DeleteProjectConfigurationRequest
  6. 詳細なSCMPostCommitRequest
  7. 詳細なSCMPostCommitResponse
  8. 詳細なSCMPreCommitRequest
  9. 詳細なSCMPreCommitResponse
  10. EditProjectConfigurationRequest
  11. GetConfigurationParametersRequest
  12. GetConfigurationParametersResponse
于 2013-08-01T14:57:03.223 に答える