当前位置: 首页 > 编程笔记 >

Java客户端调用.NET的WebService实例

阮桐
2023-03-14
本文向大家介绍Java客户端调用.NET的WebService实例,包括了Java客户端调用.NET的WebService实例的使用技巧和注意事项,需要的朋友参考一下

项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来。

1,新建.NET WebService。只在原方法上加上一个string类型的参数str

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

2,新建Java的WebService客户端,lib引入以下5个jar包(我是用idea生成的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里面用的参数是实体,我试着Java端通过XMLType.XSD_ANYTYPE类型传实体过去,结果说类型没注册之类的。网上看有方案比较繁琐,倒不如将实体序列化成Json串传过去省事。

4,参数的命名空间参见服务页面

以上这篇Java客户端调用.NET的WebService实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • WebService是为程序服务的,只在浏览器中访问WebService是没有意义的。因此,在本节使用Java实现了一个控制台程序来调用上一节发布的WebService。调用WebService的客户端代码如下: package client; import javax.xml.namespace.QName; import org.apache.axis2.addressing.Endp

  • 在客户端仍然使用了RPC的调用方式,代码如下: package client; import javax.xml.namespace.QName; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rp

  • 在Visual Studio中使用WebService就简单得多。假设引用WebService时的引用名为complexType,则下面的代码调用了uploadImageWithByte方法来上传图像文件。在Visual Studio引用WebService时,uploadImageWithByte方法多了两个out参数,在使用时要注意。 complexType.ComplexTypeServic

  • 我在weblogic中遇到了一个奇怪的问题,我们的web客户端突然无法调用webservice并连续数小时抛出以下异常。在webservice服务器端,未捕获任何异常,但在访问日志中仅找到http 500。重新启动托管webservice的weblogic托管服务器后,问题得到了解决。 web客户端和webservice服务器几个月来一直工作正常,但现在突然出现了问题。我相信这不是应用程序错误,因

  • 问题内容: 我有第三方WSDL,我需要用Java编写代码以使Web服务客户端调用第三方WSDL中的操作。现在,我已经使用Axis的WSDL2JAVA工具生成了客户端存根,并使用XMLbeans进行了数据绑定。 进行此JAVA的最佳方法是什么? 我阅读了有关SAAJ的文章,看起来这种方法会更细化吗? 除了使用WSDL2Java工具之外,还有什么其他方法可以生成代码。也许wsimport还有其他选择。

  • 嗯,首先,对不起我的英语不好。 “enderecodao.java”: 和ENDERECO的WebService“servicoEnderEco.java”:

  • 我正在尝试为我的应用程序调用Web服务。如果我在一个示例项目中调用它,它工作得非常好。但是当我将它与我的JavaFX合并时,它给了我太多的错误。Web服务客户端是使用Eclipse自动生成的。我只尝试调用这些方法。有人能帮我吗? 型号: 模块信息文件 如果我将Jaxrpc保留在类路径而不是模块路径中,我会得到如下描述的错误类型javax。xml。rpc。无法解析ServiceException。它

  • 这是一个用 C# 开发的 FTP 客户端组件