java 请求webservice_JAVA调用WebService实例
WebService是提供特定服务的架构技术,通过标准的Web协议提供服务,其目的是保证不同平台的应用服务可以相互操作。目前比较流行的实现是使用.NET和JAVA两种语言技术,并且两种实现语言可以相互操作;
下面主要围绕通过JAVA语言来介绍Webservice的定义和调用,通过JAVA语言开发WebService的方式又分为Axis、axis2、Xfire、CXF以及JWS。每种方式实现都有各自的特点,由于本人使用CXF的方式比较熟练,而且,CFX和Spring无缝结合,所以下面重点介绍以CXF方式的实现。
由于WebService实现分为服务端和客户端两种开发模式,接下来介绍WebService服务端开发、客户端开发及实例测试。
环境准备
JDK1.6及以上,需要的JAR文件有:commons-logging-1.1.1.jar、cxf-2.4.3.jar、neethi-3.0.1.jar、spring-aop-3.0.5.RELEASE.jar、spring-asm-3.0.5.RELEASE.jar、spring-beans-3.0.5.RELEASE.jar、spring-context-3.0.5.RELEASE.jar、spring-context-support-3.0.5.RELEASE.jar、spring-core-3.0.5.RELEASE.jar、spring-expression-3.0.5.RELEASE.jar、spring-web-3.0.5.RELEASE.jar、wsdl4j-1.6.2.jar、xmlschema-core-2.0.1.jar。
1.服务端开发
自定义接口类
package cn.test.ws.service;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface GreetingService {
public String welcome(@WebParam(name="username") String username);
public int getNum(@WebParam(name="number") int number);
}
定义接口实现类
package cn.test.ws.service.impl;
import cn.test.ws.service.GreetingService;
public class GreetingServiceImpl implements GreetingService {
@Override
public String welcome(String username) {
System.out.println("服务端的方法为:greeting()");
return "Hell0 "+username+",欢迎你调用JAVA下的WebService服务!";
}
@Override
public int getNum(int number) {
System.out.println("服务端的方法为:getNum()");
return number;
}
}
Spring.xml配置
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
serviceClass="cn.test.ws.service.GreetingService"
address="/GreetingService">
2. web.xml配置
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
CXF Servlet
CXFServlet
org.apache.cxf.transport.servlet.CXFServlet
1
CXFServlet
/*
3.客户端开发
public static void main(String[] args) {
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
String wsUrl = "http://127.0.0.1:8080/WS/GreetingService?wsdl";
String method ="welcome";
String method2 = "getNum";
try {
Client client = dcf.createClient(wsUrl);
Object[] objects =client.invoke(method,"TEST");
Object[] numbers =client.invoke(method2,6);
System.out.println(objects[0].toString());
System.out.println(numbers[0]);
} catch (Exception e) {
e.printStackTrace();
}
}
4.实例测试
WebService测试可以使用上述客户端main方法进行测试,也可通过在浏览器中进行测试,还有专门的webservice测试工具等众多方式进行测试。
在浏览器中输入http://IP:端口/项目名称/GreetingService?wsdl即可看到已发布的服务端信息,并且通过输入制定参数显示服务端返回的信息,如:http://IP:端口/项目名称/GreetingService/welcome?username=test。
java 请求webservice_JAVA调用WebService实例相关推荐
- java 读取webservice_java 调用webService的各种方法
一.利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务 1.首先建立一个Web services EndPoint: package Hello; import ...
- java使用axis2调用webservice接口实例
说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...
- JAVA使用HttpClient调用webservice接口
JAVA使用HttpClient调用webservice接口 关于HttpClient用法参考: HttpClient-4.5.2官方教程完整翻译 官方教程原文链接 HttpClient下载地址: 链 ...
- Java通过axis调用WebService
转载地址:http://www.linuxidc.com/Linux/2015-06/118460.htm ------------------------------------------分割线- ...
- java中web错误返回码,关于在java程序里调用webservice报500返回码的有关问题
关于在java程序里调用webservice报500返回码的问题 我现在写了个程序,是调用webservice的,执行后我打印返回码是500 错误信息是 java.io.IOException: S ...
- c 访问java webservice_java调用webservice .
Webservice调用方式:axis,soap详解 调用webservice,可以首先根据wsdl文件生成客户端,或者直接根据地址调用,下面讨论直接调用地址的两种不同方式:axis和Soap,soa ...
- Java 使用Axis实现WebService实例
在上一篇WebService实例中,基于jdk1.6以上的javax.jws 发布webservice接口.这篇博文则主要用eclipse/myeclipse 使用axis插件进行发布和调用WebSe ...
- jQuery Ajax 调用WebService实例详解
JQuery Ajax调用webservice的一些经验记录,在此实例中,解决跨域使用了Core解决方案,在下一篇文章中,会介绍JS 跨域的问题. 实例!.实例!.实例! 跨域解决方案 实例-源码 前 ...
- java ee webservice_javaEE调用webservice总结【利用WSDL】(转载)
一.MyEclipse利用网上公开发布WSDL文件,创建WebService Client,进行调用WebService: 1. 打开MyEclipse,新建一个Web Project;然后新建 一 ...
- Java使用XFire调用WebService接口
看了一些Java调用WebService接口的例子,很多都是Ctrl+C,Ctrl+V的,其中有很多拿来使用后发现有错误,令人郁闷,特此写了一篇经过测试的,只是一个小例子. 服务端(为客户端提供Web ...
最新文章
- ROS与PCL中点云数据之间的转换
- 学好C++,一个项目就够
- 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的...
- iphone popViewControllerAnimated后刷新原先的表格
- 用html制作篮球网页,篮球网站的设计与实现).doc
- 事物注解方式: @Transactional
- (转)Hibernate框架基础——多对多关联关系映射
- java中自定义异常的方法步骤
- java se基础巩固实例,Java SE基础巩固(十五):lambda表达式
- python离线安装flask_离线环境下安装flask
- atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结
- 第三章CDMA的原理和应用(3)
- 关于学历与面试的一些看法
- 1080p和1080i
- pairing-friendly曲线家族
- app启动速度优化实践
- 写给大家看的设计模式 1
- 将现有android项目打包成aar包供第三方应用调用
- 给定一个完全循环赛的比赛结果,其中n个队伍两两比赛一次。每场比赛以一方胜出或者平局结束。设计一个算法,把n个队伍排序,序列中每个队伍都不曾输给紧随其后的那个队伍。说明该算法的时间效率类型。
- 卡方检验(Chi square statistic)
热门文章
- 新版《中国药典》提升中药标准
- 自制STM32F205最小系统板
- MTK改串工具,mtk刷机工具,高通刷机工具,MTK生成线刷包工具资料下载
- Vue删除表格数据-调用逻辑
- word下禁止显示回车符号
- Deeping Learning学习与感悟——《深度学习工程师》_5
- 《单片机原理与接口技术》小结
- 《现代控制系统》第四章——反馈控制系统特性 4.3 控制系统对参数变化的敏感程度
- go模拟android浏览器,GO浏览器:界面酷炫操作顺畅Android浏览器
- 谷歌地球网页版_谷歌地球:Google Earth 专业版