Heim > Java > javaLernprogramm > Hauptteil

Wie ruft Java eine Instanz von WebService in .NET auf?

黄舟
Freigeben: 2017-09-18 09:46:54
Original
1429 Leute haben es durchsucht

Der folgende Editor zeigt Ihnen ein Beispiel eines Java-Clients, der .NET WebService aufruft. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und werfen wir einen Blick darauf.

Das Projekt muss das WebSrevice von .NET aufrufen, das Java ist. Nach langer Recherche habe ich endlich einige Hinweise bekommen und sie aufgeschrieben.

1. Erstellen Sie einen neuen .NET WebService. Fügen Sie der ursprünglichen Methode nur einen String-Typ-Parameter str


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

2 hinzu, erstellen Sie einen neuen Java WebService-Client und führen Sie die folgenden 5 Bibliotheken ein jar-Paket (Ich habe den von idea generierten WebService-Client verwendet, der 7 Pakete herunterlädt. Ich habe versucht, die log4j- und saaj-Pakete zu löschen und es läuft immer noch normal)


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();
   }
 }
}
Nach dem Login kopieren

Hinweis:

1, ich habe es direkt im Internet geschrieben als call.setOperationName("HelloWorld "), ich habe es versucht, aber es hat nicht funktioniert. Ich weiß nicht, ob es an sprachübergreifenden Problemen liegt.

2. Ich habe den Satz mit dem Auslassen von call.setSOAPActionURI auch online gesehen, aber bei mir wurde ein Fehler gemeldet.

3. Tatsächlich handelt es sich bei den im WebService des Projekts verwendeten Parametern um Entitäten. Ich habe versucht, die Entität über den XMLType zu übergeben. Es gibt online Lösungen, die ziemlich umständlich sind. Um Ärger zu vermeiden, ist es besser, die Entitäten in Json zu serialisieren und weiterzuleiten.

4. Den Parameter-Namespace finden Sie auf der Serviceseite

Das obige ist der detaillierte Inhalt vonWie ruft Java eine Instanz von WebService in .NET auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!