java调用.net的webservice接口
要调用webservice,首先得有接口,用已经写好的接口地址在myEclipse的目标project中,右键->new web service client->

选择JAX-WS方式,点击“next”,看到以下界面:输入webservice接口地址,然后选择你要生成客户端的package包,不选择默认是项目的default包。

点击“next”,进入验证环节,再次点击“next”,进入以下界面:如果在新建项目时new的是web service project,这两项不需要勾选,否则要勾选上。

最后点击“finish”完成。这样就生成了webservice的客户端。
接下来,在目标project程序中调用.net的webservice接口,推荐的方式是在资源文件中配置adapterDomain(等于wsdlLocation值),namespaceURI(等于targetNamespace的值),localPart(等于service的name)三个变量,这样是为了程序的可移植性更好,例如:在default.properties文件中定义这三个变量:
adapterDomain=http://192.168.1.104/ssd/AdapterService/AdapterService.asmx?wsdl
namespaceURI=http://tempuri.org/
localPart=AdapterService
需要声明的是,这三个变量可以在http://192.168.1.104/ssd/AdapterService/AdapterService.asmx?wsdl这个接口地址或者生成的客户端的注解为@WebServiceClient的类中找到。
然后,在本项目新建一个CallWebService类:
public class CallWebservice {
static Logger logger = Logger.getLogger(CallWebservice.class.getName());
private String adapterDomain;
private String namespaceURI;
private String localPart;
public CallWebservice(String adapterDomain,String namespaceURI,String localPart) {
super();
this.adapterDomain = adapterDomain;
this.namespaceURI = namespaceURI;
this.localPart = localPart;
}
public AdapterServicePortBinding initPortBind() throws Exception{
AdapterServicePortBinding adapterService = null;
URL url;
url = new URL(adapterDomain);
QName qName = new QName(namespaceURI,localPart);
javax.xml.ws.Service service = javax.xml.ws.Service.create(url, qName);
adapterService = service.getPort(AdapterServicePortBinding.class);
return adapterService;
}
public String getAll() throws Exception {
return initPortBind().getAll();
}
AdapterServicePortBinding 是暴露了接口方法的类,不同的写法可能有不同的结果。这里方法getAll()是在接口中声明的方法,且在AdapterServicePortBinding 类中发布到网络中的。
这时,我们就可以在程序中调用这个接口的方法了。
但在这之前,要先写一个读取资源文件的util工具类:PropertiesUtil
public class PropertiesUtil {
static Logger logger = Logger.getLogger(PropertiesUtil.class.getName());
private static PropertiesUtil instance = null;
private static String file = null;
private Properties props = new Properties();
private static InputStream in = null;
public static synchronized PropertiesUtil getInstance() {
if (instance == null) {
instance = new PropertiesUtil();
}
return instance;
}
public PropertiesUtil() {
}
public void init(String inputFile) {
if (!inputFile.equals(file)) {
file = inputFile;
try {
// in = new BufferedInputStream(new FileInputStream(inputFile));
in = PropertiesUtil.class.getClassLoader().getResourceAsStream(inputFile);
props.load(in);
} catch (Exception e) {
logger.error("错误:配置文件操作失败, 初始化属性文件失败");
logger.error(e);
System.out.println("错误:配置文件操作失败, 初始化属性文件失败\n" + DateUtil.getInstance().formatterDate(new Date()) + " " + getClass().getName());
//e.printStackTrace();
}
}
}
public String readValue(String key) {
String value = props.getProperty(key);
return value;
}
好了,现在可以来调用了。
例如,我在UserService类中这样写:
public String findAuthorTreeStr(){
//调用方法获取CallWebservice 对象,并调用接口方法
List list = this.getService().getAll();
}
/**
* 呼叫Webservice,获取实例
* @return
*/
public CallWebservice getService(){
PropertiesUtil propertiesUtil = PropertiesUtil.getInstance();
propertiesUtil.init("default.properties");
adapterDomain = propertiesUtil.readValue(adapterDomain);
namespaceURI = propertiesUtil.readValue(namespaceURI);
localPart = propertiesUtil.readValue(localPart);
CallWebservice service = new CallWebservice(adapterDomain, namespaceURI, localPart);
return service;
}
这样就完成了一次webservice调用。笔记结束。
java调用.net的webservice接口的更多相关文章
- java 调用wsdl的webservice接口 两种调用方式
关于wsdl接口对于我来说是比较头疼的 基本没搞过.一脸懵 就在网上搜 看着写的都很好到我这就不好使了,非常蓝瘦.谨以此随笔纪念我这半个月踩过的坑... 背景:短短两周除了普通开发外我就接到了两个we ...
- java调用第三方的webservice应用实例
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...
- java调用第三方的webservice应用实例【转载】
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...
- python实现建立soap通信(调用及测试webservice接口)
实现代码如下: #调用及测试webservice接口 import requests class SoapConnect: def get_soap(self,url,data): r = reque ...
- java调用.net的webservice
目录(?)[-] 一参考文献 二概述 三实例 注意点 一.参考文献 1. http://www.cnblogs.com/xuqifa100/archive/2007/12/13/993926.ht ...
- 转 java调用php的webService
1.首先先下载php的webservice包:NuSOAP,自己到官网去下载,链接就不给出来了,自己去google吧 基于NoSOAP我们写了一个php的webservice的服务端,例子如下: ...
- Java 调用 Hbase API 访问接口实现方案
HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...
- 具有相同名称 的类/接口已在使用。请使用类定制设置来解决此冲突。java调用第三方的webservice应用实例
WSDLToJava Error: http://10.96.84.124:81/BTRPWebServiceForSMB/OnSMBOrderService.svc?xsd=xsd0 [0,0]: ...
随机推荐
- FlowLayout实现
package com.loaderman.customviewdemo; import android.content.Context; import android.util.AttributeS ...
- int 和String之间的相互转换
int ---> String 1. 和 "" 进行拼接 2. 使用String类中的静态方法valueOf: public static String valueOf(in ...
- 37 Flutter仿京东商城项目 结算页面布局
加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 CheckOut.dart import 'package:flutter/material.dart'; impo ...
- Greenwich.SR2版本的Spring Cloud Zipkin实例
调用链跟踪是微服务架构中的基础能力,Spring Cloud Zipkin+Sleuth为我们提供了该能力.首先我们先建立Zipkin服务端,它需要集成Eureka,用于发现服务提供方和消费方,进行数 ...
- java判断请求是否ajax异步请求
java判断请求是否ajax异步请求 解决方法: if (request.getHeader("x-requested-with") != null && re ...
- 源码安装LNMP
需要准备的安装包以及下载地址(只是一个大概地址,版本和下载方式需要自行选择): Nginx http://nginx.org/en/download.html nginx主程序包 MySQL http ...
- javascript从网络下载随机笑话
/*** * 讲笑话函数(调试用) * @param callback 回调函数 */ function randomText(callback) { var result =''; $.ajax({ ...
- FastCGI模式下安装Xcache
PHP执行的时候,会被编译成opcode,然后 zend引擎会执行opcode.也就是说,如果你两次执行同一个php程序,每次执行,他都要把php代码编译成opcodexcache的意义在于,当你第一 ...
- JQuery.BlockUI使用方法举例
JQuery.BlockUI是众多JQuery插件弹出层中的一个,它小巧(原版16k,压缩后10左右),容易使用, 功能齐全,支持Iframe,支持Modal,可定制性高也意味他默认谦虚的外表. jQ ...
- iOS-图形绘制(全)
画阴影: CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(contex ...