Heim >Java >javaLernprogramm >Wie ruft Java eine Instanz von WebService in .NET auf?
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"; }
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(); } } }
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!