2011-07-09 23 views
0

私の会社の内部クライアントが呼び出すWebサービスを作成しています。サービスメソッドは、次のようになります。SOAPエラー応答の作成

CreateProposalResponse ProposalSOAService :: CreateProposal(CreateProposalRequest)

私は応答にビジネスのエラーメッセージを追加する必要がCreateProposalResponseメッセージについて。私はSOAPヘッダーにエラーを入れることについて多くのことを読んできましたが、ビジネスエラーに関しては、これはビジネスエラーではなくシステム/トランスポート/検証の種類でなければならないため、これを置くのに適切な場所ではないと思います。以下は、CreateProposal()SOAコール用の私の応答XMLです。誰かがこのレスポンスにエラーメッセージを追加する方法についてアドバイスできますか?私はこれを想像するのが大変で、呼び出し元のクライアントが正常な応答とビジネスエラー/例外との違いをどのように判断するのかがわかりません。

マイCreateProposalResponseメッセージは次のようになります

<?xml version="1.0" encoding="UTF-8" ?> 
<CreateProposalResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://xmlns.xxx.com/aces/proposal src/Proposal_v1.0.xsd" 
         xmlns="http://xmlns.raytheon.com/aces/proposal"> 
    <userId>022483</userId> 
    <Proposal> 
    <proposalTitle>SBT Prop</proposalTitle> 
    <proposalDescription>Proposal is for SBT</proposalDescription> 
    <businessSegmentCode>SAS</businessSegmentCode> 
    <proposalType>Test</proposalType> 
    <proposalExternalRefID>SBT38829</proposalExternalRefID> 
    <proposalStartDate>2009-01-01</proposalStartDate> 
    <proposalEndDate>2025-01-01</proposalEndDate> 
    </Proposal> 
    <sourceSystemID>SBT</sourceSystemID> 
    <targetSystemID>ACES</targetSystemID> 
</CreateProposalResponse> 

答えて

1

どのように簡単にあなたのメッセージ内の任意の要素として<errors>配列要素を有し、(一つ以上の<error>要素がエラーを説明すると、それを移入についてs)?次に、レスポンスメッセージには、入力された<errors>要素(エラーが発生しても望ましい可能性のある他のメタデータ要素、おそらく<sourceSystemID><targetSystemID>など)が含まれていますが、<Proposal>は含まれないか、 <Proposal>は含まれず、<errors>は含まれません(または要素は空になります)。

(ちなみに、私は、ビジネス・エラーがないSOAPエラーとして、メッセージ本文に示されなければならないことに同意する。)これらのエラーは、操作が失敗したことを指示しない限り

+0

ありがとう、私はこれを行う正しい方法だったと感じたものを確認しました。 –

1

私はAasmund Eldhusetに同意します。その場合は、SOAPフォルトを使用する必要があります。

関連する問題