项目需要去调用.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的更多相关文章

  1. java客户端调用c#的webservice服务

    此处使用到了CXF框架,可以使用以下坐标从maven仓库中获取相关jar包: <dependency> <groupId>org.apache.cxf</groupId& ...

  2. Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  3. Java 之 调用.Net的 WebService 整理

    最近做一个 java 调用 .net 服务的项目,其中 .net做了一个WebService,需要java来调用. 最开始.net的Service代码如下: using System; using S ...

  4. Java与WCF交互(一):Java客户端调用WCF服务 【转】

    原文:http://www.cnblogs.com/downmoon/archive/2010/08/24/1807161.html 最近开始了解WCF,写了个最简单的Helloworld,想通过ja ...

  5. 转载——Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  6. 使用java客户端调用redis

    Redis支持很多编程语言的客户端,有C.C#.C++.Clojure.Common Lisp.Erlang.Go.Lua.Objective-C.PHP.Ruby.Scala,甚至更时髦的Node. ...

  7. java客户端调用ftp上传下载文件

    1:java客户端上传,下载文件. package com.li.utils; import java.io.File; import java.io.FileInputStream; import ...

  8. java客户端调用webService

    啥也不想说,以前使用的方法突然不行了.各种网搜(记得别忘记到jar包哦:axis.jar) 看代码,第一种方式,也就是以前的方式: 改方式不用表名参数名称 public static String i ...

  9. 如何在Java客户端调用RESTful服务

    在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端.当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及J ...

随机推荐

  1. kong介绍-个人分享

    kong简介 背景 我们在提供api或微服务时,通常借助openresty nginx进行流量转发或者添加一些规则或功能,但是随着服务数量和引用增多,复杂的网络环境, 使维护变得困难,不容易扩展,一些 ...

  2. java快速排序详解

    快速排序 public class QuickSort { public static void main(String[] args) { int[] a = { 0, 3, 6, 8, 2, 4, ...

  3. macaca 环境搭建篇,(web 和安卓)

    appium研究一段时间,感觉appium太不稳定了, 后来听说了阿里开源了macaca,那么我就想尝尝鲜,啥都不说,我感觉还是赶紧上手搭建环境吧. macaca介绍: Macaca是一套完整的自动化 ...

  4. 自己动手写java 字节流输入输出流

    数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流.   "流是磁盘或其它外围设备中存储的数据的源点或终点." ...

  5. HTML <area><map>标签及在实际开发中的应用

    之前,我一直以为HTML <area>是一个鸡肋HTML,估计到了HTML5时代会被废弃的命.但是,最近一查资料,乖乖了个咚,不仅没被废弃,反而发展了,新增了一些标签属性,例如rel,me ...

  6. 所有做java开发的都是些垃圾

    所有做java开发的都是些垃圾,再垃圾的框架,只要有人用,对java程序员来说那就是高性能,高可用,解耦的,非常优秀的一款框架.属于吃屎都吃的津津有味.java里的框架都是垃圾,连一个不错的都没有.比 ...

  7. java常见面试题(一)

    一.Spring面试的问题 1.spring的事务认识 事务注解方式: @Transactional,当标于类前时,该类的所有public方法都进行事物处理. 事务的传播行为: @Transactio ...

  8. IOS学习【VMware 12 安装 Mac OS X 10.11】-Day1

    1.下载安装VMware 12 pro  (32位不能安装) 虚拟机 VM12密钥 5A02H-AU243-TZJ49-GTC7K-3C61N 2.unlock206 用于VMware 12识别tac ...

  9. linux c编程:初识进程与线程

    p { margin-bottom: 0.25cm; line-height: 120% } (一) 认识进程 在Linux系统中,每一个进程都有自己的ID,就如同人的身份证一样.linux中有一个数 ...

  10. c# 网页打印全流程

    说明:我要实现的就是将数据库中Group表的数据查找出来,替换打印模版中的内容,再将模版文件打印出来 1.准备好要打印的模版group_O_train.html <div class=" ...