0

Axis 1.2 で実行されている Web サービスと (.NET を使用して) 通信する必要があります。2 つの .NET ツールと WSDL を使用して C# プロキシを作成しましたが、次のような問題に遭遇しました。

1) WSDL.exe は、メソッドの入力パラメータを欠くプロキシを作成しました。たとえば、そのようなメソッドが必要な場合:

AReturnType AMethod(AnInputType);

作成されたプロキシには次のようなメソッドがありました。

void AMethod();

2) WSDL.exe の代わりに SVCUTIL.exe が推奨されていることを読みました。そのため、SVCUTIL を使用してプロキシを作成しましたが、NULL が返されるオブジェクトという悪名高い問題に遭遇しました。残念ながら、適切な解決策が見つかりませんでした。

そのため、手動でセットアップを行っても構わないと思っています。ここに私が持っているものがあります:

  • SoapUI は WSDL を適切に解析し、S​​OAP/XML 要求/応答を検査できます。
  • Axis WSDL2JAVA は適切な Java コードを生成し、うまく機能します
  • HttpWebRequest を使用して XML/SOAP 要求を送信すると、適切な XML/SOAP 応答が生成されます。
  • XSD.EXE ツールを使用して XSD および C# オブジェクトを生成し、(前の手順で取得した) XML 応答をそれらのオブジェクトにシリアル化しようとしました。

それで、あなたは何を提案しますか?どうにかしてプロキシを手動で作成する方法はありますか? それとも、生成された Java コードが何らかの形で役立つのでしょうか?

4

3 に答える 3

1

私が取り組んでいるプロジェクトが手動プロキシを作成して使用する方法は次のとおりです。

これはクライアント プロキシです。

 [ServiceContract(Name = "YourServiceContract", Namespace = "http://....")]
 public interface YourServiceContract, 
  {
    [OperationContract]
    object GetObject(object searchCriteria);
   }

public class YourClient : ClientBase<YourServiceContract>, YourServiceContract
{
    public YourClient (){ }

    public YourClient (string endpointConfigurationName)
    : base(endpointConfigurationName){ }

    public object GetObject(object searchCriteria)
    {
    return base.Channel.GetObject(searchCriteria);
    }
}

これは、次のように呼ばれます。

public void GetYourObject(object searchCriteria)
    {
        YourClient proxy = new YourClient();
        proxy.GetObject(searchCriteria);
        proxy.SafeClose();
    }
于 2012-09-25T15:57:27.537 に答える
0

この答えを見てください。HttpRequestを直接作成できるようになります:-

于 2012-09-25T15:38:01.890 に答える
0

WCF クライアントを Java の世界のサービスに接続する一連の事前定義された相互運用バインディングがあります。

于 2012-09-25T15:43:47.617 に答える