2012-03-11 4 views
0

は、私にはわからないエラーを示しています障害:生成sudzcアプリからSAPのSOAP Webサービスを呼び出すためにしようとCX_ST_MATCH_ELEMENT

SudzCExamples[5192:f803] <?xml version="1.0" encoding="utf-8"?><soap:Envelope  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:sap- 
com:document:sap:soap:functions:mc-style"><soap:Body><ZComUrlGetrecords> 
<IYear>2012</IYear></ZComUrlGetrecords></soap:Body></soap:Envelope> 


SudzCExamples[5192:f803] <soap-env:Envelope xmlns:soap- 
env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header></soap-env:Header><soap- 
env:Body><soap-env:Fault><faultcode>soap-env:Server</faultcode><faultstring 
xml:lang="en">CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 
'IYear'</faultstring><detail><ns:SystemFault 
xmlns:ns="http://www.sap.com/webas/710/soap/runtime/abap/fault/system/"> 
<Host>undefined</Host><Component>APPL</Component><ChainedException> 
<Exception_Name>CX_SOAP_CORE</Exception_Name><Exception_Text>CX_ST_MATCH_ELEMENT:XSLT 
exception.System expected element 'IYear'</Exception_Text></ChainedException> 
<ChainedException><Exception_Name>CX_SXMLP</Exception_Name><Exception_Text>XSLT 
exception</Exception_Text></ChainedException><ChainedException> 
<Exception_Name>CX_ST_MATCH_ELEMENT</Exception_Name><Exception_Text>System expected 
element 'IYear': Main Program:/1BCDWB/WSS825E06E4DEC40F9171D| 
Program:/1BCDWB/WSS825E06E4DEC40F9171D| Line: 18| Valid:X</Exception_Text> 
</ChainedException></ns:SystemFault></detail></soap-env:Fault></soap-env:Body></soap- 
env:Envelope> 

2012-03-11 20:09:30.631 SudzCExamples[5192:f803] soap-env:Server CX_ST_MATCH_ELEMENT:XSLT 
exception.System expected element 'IYear' 
(null) 

奇妙なことは、それのように思われることですリクエストにIYear要素がある場合誰かが問題を検索する場所を教えてもらえますか?

+0

この問題に関するアイデアはありませんか? – user1099480

答えて

3

私はこの同じ問題を昨日見つけ、いくつかの実験の後で解決策を発見しました。私が最初にしたのは、SoapUIクライアントを使ってリクエストを成功させることでした。 SoapUIには無料の試用版が付属していますが、無料の試用版を使用していなくても、登録しなくてもWebサービスへのアクセスに使用できます。私は、SudzCが作成していたリクエストと比較するために行ったリクエストの成功からxmlを使用しました。彼らはいくつかの点で異なり、SudzCが要求を形成する方法は十分ではありません。

2つのリクエストを比較し、SoapUIリクエストと一致するSudzCのリクエストを変更することをお勧めします。これを行うには、SudzCが提供するSoapソースコードを編集します。このソースコードは、特にcreateEnvelope関数のSoap.mファイルにあります。

また、リクエストに空のヘッダがある場合、SudzCにはリクエストのヘッダ部分が含まれません。エンベロープの名前空間部分の後の空のヘッダーのハードコード。このすべてをやって、この正確な問題を解決しました。

+0

ザック、それは素晴らしいね。どうもありがとう。 – user1099480

+0

もし私が私に知らせてくれたコード例が必要なら、それが助けてくれることを願っています。 –

関連する問題