2009-11-18 4 views
5

.NETで書かれたWebサービスを呼び出す必要があります。呼び出しを行うアプリケーションはColdFusionで記述されています。 Webサービスが予期するパラメータの1つは、DataSetオブジェクトです。 ColdFusionで.NET DataSetオブジェクトをインスタンス化できません。どのように受け入れられるかをWebサービスに渡すことはできますか?私は生のXMLでSOAPリクエストを書くのに問題はありませんが、DataSetオブジェクトのXMLがどのようなものかはわかりません。WebサービスはDataSetオブジェクトを期待していますが、ColdFusionまたは未加工のXMLを使ってどのように提供できますか?

+0

.NETデータセットをCFが使用できるものに変換するための情報がありますが、逆もありません。また、.NETが使用できる構造体の配列、配列の構造体などにクエリを変換できる多くのUDFが見つかりました。私はあなたのデータセットがどのように見えるかについて、ソースからのドキュメンテーションが必要だと思います。 – ale

+0

とにかく、これは参考になるかもしれません:http://coldfusion.sys-con.com/node/47199 – ale

+0

@Al Everett - それは本当に非常に役立つように見えますが、私はQueryTool CFCからリンクされている記事。私は今コードを見ています。 –

答えて

5

軸によってシリアライズさを期待する.NETおよびあなたに利用可能なすべてのオブジェクト。残念ながら、ColdFusionでは簡単にアクセスできません。

  1. アクセスColdFusionでどのような方法でWSDL:

    はあなたが必要スタブを取得します。
  2. スタブのCFアプリケーションディレクトリを見てください。 c:\ ColdFusion8 \ stubs \ WS \ WS-21028249 \ com \ foo \ bar \
  3. 「com」のすべてを新しいものにコピーします。ディレクトリには、 のCFクラスパスが存在します。 c:\ ColdFusion8 \ MyStubs \ com \ foo \ bar \
  4. 新しいディレクトリを作成した場合は、クラスパスに追加してください。 CFサービスを再開します。
  5. またはCreateObject()で他のJavaオブジェクトと同様に使用します。 MyObj = CreateObject( "java"、 "com.foo.bar.MyObject");

データセットオブジェクトは、AxisがすべきJavaフォーマットのどこかにあるはずです。あなたはCFScriptでほとんどSOAPオブジェクトは、オブジェクトの構造を定義し、Axisがそれを操作するためのメソッドを作成します

質問について


EDITをこのすべてを行う必要があるとしている最も可能性が高いです。軸が作成するJavaオブジェクトを見てください。 CFDUMPを使ってメソッドとプロパティを調べることができます。

私は、Axisが混乱してしまう.NETオブジェクトを見たことがあります。恐らく、 "ArrayOfAnyType"に変わる恐れのある非ジェネリックコレクションのようです。 .NET開発者がGenericsをサービスで使用して、Axisが配列を適切に定義できるようにすることは重要です。もしそうでなければ、あなたはそれを吸うので、あなたはそれを石鹸で扱うことができないかもしれません。

しかし、恐怖を持っていませんが、別の方法があります。 XML/RPCのスタイルのスタイルで.NET Webサービスといつでも対話できます。それは自動ではなく、XMLを手でパースしているのですが、それはうんざりですが、時にはそれを行う唯一の方法です。最後に "?wsdl"を付けずに.asmxファイルを打つことによって、.NETから助けを得ることができるはずです。そうすれば、.NETは一連のドキュメントと呼び出しとXMLの外観の例を生成します。その場合、XMLを作成し、cfhttpを使用して指定されたワイヤに渡すだけです。がんばろう!

P.S.また、CF/Axisで使用する独自のオブジェクトをモデル化する方法もありません.FlendFusion/Apache Axisオブジェクトを使用する必要があります。スタブまたは無し

+0

@Ryber - データセットを模倣する方法はありますか、スタブを唯一の方法で使用していますか? – Leigh

+0

@Ryber - そのメソッドを使用して空の擬似DataSetオブジェクトを作成しても、どのように値を入力すればよいですか?私はそれが便利なaddRow()メソッドやそのようなものを持っていないと思う。 –

+0

質問の編集された本文 – ryber

0

JSONを使用できますか?

http://json.org/

+0

私の質問が明確でない場合は申し訳ありません。 ColdFusionを使用して.NET Webサービスを照会する必要があり、ColdFusionから.NET DataSetオブジェクトを何とか提供する必要があります。 JSONがどのように画像に入っているのかはわかりません。 –

関連する問題