BPEL + Apache ODE(呼び出し.NET ASMXの呼び出し)の問題を持つ外部Webメソッドの呼び出し
-
11-12-2019 - |
質問
事前情報: Webメソッド(WM)のオーケストレーションを使用することを学んでいます。私はAssingsを使用してレッスンを強く完了し、Webメソッドの呼び出し、BPELでの並列処理。 Apache As Apache Baseを持つTomcat7サーバー、BPELプラグイン、Tomcat7サーバーでEclipse Indigo 3.7.1を使用しています。反対側では、Mono .NETプラットフォームに書かれた呼び出し元のWMSを学ぶ必要があります。
今のところ: 今私はWebメソッドを呼び出す問題があります。私は作りました: 1)Mono .NET - Worksで実行されているWebメソッドは、ブラウザ(http:// localhost:8081 / hwws.asmx)とEclipseツール "Web Services Explorer"でテストできます。 2)この.NET WebメソッドをSOAPポートを介して呼び出すわずかなBPEL。 3)他の仕事のスタンチオでは、Visual Studioで.NETサービスを行いました。必要に応じて、後でテキストを投稿する必要がある場合は、エラーを持つ。
問題:起動時にエラーが発生しています。
画面: 1).NET WS HW(Helloworld)のブラウザテストhttp:// fighosting.winsoftmagic .com / 1 / s4nbwdsqib.jpg 2).NET WS HWのEclipseテスト http://photo-hosting.winsoftmagic.com/ 1 / zywnl2wtgu.jpg 3)エラー http://photo-hosting.winsoftmagic.com/1/ltbexoxcdl。 JPG
エラーリスト:
18:15:25,294 WARN ExternalService故障応答:FARTTTYPE=(UNKOWN) SOAP:クライアントはSOAPメッセージを逆シリアル化しません 18:15:25,376呼び出し中に障害が発生しました: 18:15:25,382情報BPELRuntimeContextImpl ActivityRecovery:アクティビティ11、障害理由:チャネル21ででは、後でタイムアウトエラーが発生します。私はすでにこの問題の周りに週を過ごしました、私が考えることができるすべての方法で検索しました。
編集12.03.2012: Mono WSでテストしても何らかの理由で働いていました。 私はインターネットからWSを呼び出してみました、そしてそれは私が仕事場で持っていたと同じ誤りを与えました:
14:25:16,177呼び出し中に障害が発生しました:エラーメッセージの送信メッセージ(MEX= {PartnerRoleMex#hqejbhcnphr747jefui9ic [pid {http://wsaspx.tns/}} inetws-24] org.apache.ode.bpel.epr。 wsaendpoint@1e3a4c7.checkText(...)ステータス非同期}):着信メッセージの入力ストリームはNULLです。 14:25:16,178情報[BPELRuntimeContextImpl] ActivityRecovery:アクティビティ11、障害理由:エラーメッセージ送信メッセージ(MEX= {PartnerRoleMex#hqejbhcnphr747jefui9ic [pid {http://wsaspx.tns/}} inetws-24]呼び出しorg.apache.ode .BPEL.EPR.WSAENDPOINT @ 1E3A4C7.CHECKTEXT(...)ステータス非同期}):着信メッセージの入力ストリームはNULLです。チャンネル21に同時に、このサービスはすべてのテストフォームから機能します。
編集:16.03.2012 私のMONOメソッドは私の理解なしに始まったのと同じように動作します。 tcpmon-1.1.jarこのようなメッセージをもう一度表示します。
POST /hwws.asmx HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: "http://hwws.tps/HelloWorld" User-Agent: Axis2 Host: localhost:8092 Transfer-Encoding: chunked <--- EDITED: REASON OF NOT WORKING ---- 31c <?xml version='1.0' encoding='UTF-8'?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8092/hwws.asmx</addr:To> <addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">http://hwws.tps/HelloWorld</addr:Action> <addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address></addr:ReplyTo> <addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr74k7fapcntd</addr:MessageID> </soapenv:Header> <soapenv:Body><HelloWorld xmlns="http://hwws.tps/"> <s0:st xmlns:s0="http://hwws.tps/">My test message</s0:st> </HelloWorld></soapenv:Body></soapenv:Envelope> 0
.
HTTP/1.0 500 Internal Server Error Date: Fri, 16 Mar 2012 08:01:50 GMT Server: Mono.WebServer2/0.4.0.0 Unix Connection: close X-AspNet-Version: 4.0.30319 Content-Length: 366 Cache-Control: private Content-Type: text/xml; charset=utf-8 <?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/"> <soap:Body><soap:Fault><faultcode>soap:Client</faultcode> <faultstring>Could not deserialize Soap message</faultstring> </soap:Fault></soap:Body></soap:Envelope>
実際に私は3つのエラーのうちの1つを取得します。ソケットが接続されていない場合は4番目の誤りがありましたが、それらのすべてが消えていました。
マイメインの目標はSSL +承認.NETサービス - 一例があればグレートフルになります。 みんなにたくさんありがとう!あなたの助けを見るのは本当の喜びです:)
解決
Thanks to all, testing soap-body shown that it was good and problem was in headers part which had some strange "Chunked" and numbers before xml (length of xml text) and 0 after xml end. I just set http.request.chunk=false and now it work at all my tests yet. For that purpose download sample.endpoint from http://ode.apache.org/endpoint-configuration.html , renamed it as bpel name (MonoCaller.bpel => MonoCaller.endpoint). It has string for chunked already commented. And also added something like http.default-headers.authorization=Basic <64b code of "login:password" made in any coder> for authorization purpose and it also works now! :-]
他のヒント
The same error has occured with me, the problem was with the web service itself, I had an empty constructor plus the methodes wich causes a problem, the solution is to delete the constructor.