ホームページ  >  記事  >  Java  >  Java は .NET で WebService のインスタンスをどのように呼び出しますか?

Java は .NET で WebService のインスタンスをどのように呼び出しますか?

黄舟
黄舟オリジナル
2017-09-18 09:46:541458ブラウズ

以下のエディターは、.NET WebService を呼び出す Java クライアントの例を示します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターをたどって見てみましょう。プロジェクトでは、Java である .NET の WebSrevice を呼び出す必要があります。

1. 新しい .NET Web サービスを作成します。文字列型パラメータ str

[WebMethod]
public string HelloWorld(string str)
{
  return "Hello World";
}

2 を元のメソッドに追加し、新しい Java WebService クライアントを作成し、次の 5 つの jar パッケージをライブラリに導入するだけです (アイデアによって生成された WebService クライアントを使用しました。 7 パッケージをダウンロードし、log4j および saaj パッケージを削除しようとしましたが、まだ正常に実行されます)

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
 
public class HelloWorldClient {
 public static void main(String[] argv) {
   String endpoint ="http://localhost:64662/WebService1.asmx?wsdl";
   try {
     // 定义服务
     Service service = new Service();
     Call call = (Call) service.createCall();
     call.setTargetEndpointAddress(endpoint);
     call.setOperationName(new QName("http://tempuri.org/", "HelloWorld"));
     call.setSOAPActionURI("http://tempuri.org/HelloWorld");
     call.addParameter(new QName("http://tempuri.org/", "str"),// 这里的str对应webservice参数名称
         XMLType.SOAP_STRING, ParameterMode.IN);
     call.setReturnType(XMLType.SOAP_STRING);
     String retVal1 = (String) call.invoke(new Object[] {"Hello World!"});
     System.out.println(retVal1);
   } catch (Exception e) {
     e.printStackTrace();
   }
 }
}

注: 1、インターネット上で call として直接書かれているのを見ました。 setOperationName( "HelloWorld") を試してみましたが、うまくいきませんでした。それが言語間の問題によるものなのかどうかはわかりません。

2. call.setSOAPActionURI が省略されているということもインターネットで見ましたが、私の場合はエラーが報告されました。

3. 実際、プロジェクトの WebService で使用されるパラメーターはエンティティを XMLType 経由で渡してみました。非常に面倒な解決策がオンラインにありますが、トラブルを避けるために、エンティティを Json にシリアル化して渡すことをお勧めします。

4. パラメータの名前空間についてはサービスページを参照してください

以上がJava は .NET で WebService のインスタンスをどのように呼び出しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。