以下のエディターは、.NET WebService を呼び出す Java クライアントの例を示します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターをたどって見てみましょう。プロジェクトでは、Java である .NET の WebSrevice を呼び出す必要があります。
1. 新しい .NET Web サービスを作成します。文字列型パラメータ str
[WebMethod] public string HelloWorld(string str) { return "Hello World"; }
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 サイトの他の関連記事を参照してください。