아래 편집기는 .NET WebService를 호출하는 Java 클라이언트의 예를 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집기를 따라가서 살펴보겠습니다. 프로젝트는 Java인 .NET의 WebSrevice를 호출해야 합니다. 오랫동안 조사한 끝에 마침내 몇 가지 단서를 얻었고 이를 적어 두었습니다.
1. 새로운 .NET 웹 서비스를 만듭니다. 원래 메소드에 문자열 유형 매개변수 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!