基于wsdl2java訪问外来service服务
一、wsdl2java介绍
Wsdl2java是cxf提供的一个用于生成client代码的工具,它的功能跟wsimport差点儿相同。
可是wsdl2java工具仅仅能生成訪问基于cxf公布的服务的代码。Wsdl2java位于cxf_home/bin文件夹下,因此使用这个工具时须要加入文件夹到path中。Wsdl2java工具的參数与wsimport有所不同。主要有:
-d 參数,指定生成代码的文件夹
-p 參数,指定生成的新的包结构
(Wsdlurl) –http://server.port/service?wsdl,webservice的wsdl地址。必须的參数
二、新建javaproject,并公布webservice
新建java project,命名为HelloCXF,导入CXF相关的jar包。
在src文件夹中新建com.hellocxf.service包,并新建People类,People类代码为:
package com.hellocxf.service; import javax.jws.WebMethod;
import javax.jws.WebService; @WebService
public interface People {
publicString sayHello(String name);
//@WebMethod(exclude=true)
publicString makeFriend(String name);
}
在src文件夹中新建com.hellocxf.serviceImpl包,并新建Student类。Student代码为:
package com.hellocxf.serviceImpl; import javax.jws.WebMethod;
import javax.jws.WebService; import com.hellocxf.service.People; @WebService
public class Student implements People { @Override
publicString sayHello(String name) {
//TODO Auto-generated method stub
System.out.println("Hello:"+name);
returnname;
} @WebMethod(exclude=true)
@Override
publicString makeFriend(String name) {
//TODO Auto-generated method stub
System.out.println("makefriend with "+name+" student");
returnname;
} }
在src文件夹新建com.hellocxf.servicePublice包,并创建ServicePublish类。用于公布webservice.ServicePublish代码为:
package com.hellocxf.servicePublish; import javax.xml.ws.Endpoint; import com.hellocxf.service.People;
import com.hellocxf.serviceImpl.Student; public class ServicePublish { publicstatic void main(String[] args) {
//TODO Auto-generated method stub
PeoplemService = new Student(); Stringaddress = "http://localhost:8080/People";
Endpoint.publish(address,mService);
} }
执行ServicePublish类,公布webservice服务。
三、利用wsdl2java工具生成client调用服务代码
在D盘新建目录generatedCode
打开cmd命令。切换到该文件夹下
执行wsdl2java –d . wsdl">
http://localhost:8080/People?wsdl
四、新建clientproject,调用webservice服务
在eclipse中新建javaproject,命名为CXFClient
将第三部生成的.java类文件总体拷贝到src文件夹下.
在src文件夹下新建com.webservice.use包,在包中新建类ServiceUse.用于完毕对webservice的调用,代码为:
package com.webservice.use; import com.hellocxf.serviceimpl.People;
import com.hellocxf.serviceimpl.StudentService; public class ServiceUse { publicstatic void main(String[] args) {
//TODO Auto-generated method stub //<wsdl:servicename="StudentService">
StudentServicestudentService = new StudentService(); //<wsdl:portbinding="tns:StudentServiceSoapBinding"name="StudentPort">
//<wsdl:bindingname="StudentServiceSoapBinding" type="ns1:People">
Peoplepeople = studentService.getStudentPort(); StringserviceResult = people.sayHello("yinyuchun");
System.out.println(serviceResult); } }
类ServiceUse代码中创建的service类型和调用的port、方法都是从wsdl获取的。
基于wsdl2java訪问外来service服务的更多相关文章
- Android跨进程訪问(AIDL服务)
我将AndroidAIDL的学习知识总结一下和大家共享 在Android开发中,AIDL主要是用来跨进程訪问. Android系统中的进程之间不能共享内存,因此,须要提供一些机制在不同进程之间进行数据 ...
- 基于Apache CXF的Web Service服务端/客户端
转自:https://www.aliyun.com/zixun/wenji/1263190.html CXF服务端: package com.sean.server; import javax.jws ...
- 怎样基于谷歌地图的Server缓存公布Image Service服务
怎样基于谷歌地图的Server缓存公布Image Service服务 第一步:下载地图数据 下载安装水经注万能地图下载器,启动时仅仅选择电子.谷歌(这里能够依据自己的须要选择).例如以下图所看到的. ...
- Kivy A to Z -- 怎样从python代码中直接訪问Android的Service
在Kivy中,通过pyjnius扩展能够间接调用Java代码,而pyjnius利用的是Java的反射机制.可是在Python对象和Java对象中转来转去总让人感觉到十分别扭.好在android提供了b ...
- CentOs虚拟机能够互相ping通,但无法訪问虚拟机服务
CentOs虚拟机能够互相ping通,但无法訪问虚拟机服务 虚拟机ip:192.168.0.57 主机 ip:192.168.0.80 在虚拟机上搭建了php环境.虚拟机CentOs,主机win7 虚 ...
- 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice
一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...
- Nginx 因 Selinux 服务导致无法远程訪问
文章来源:http://blog.csdn.net/johnnycode/article/details/41947581 2014-12-16日 昨天晚上处理好的网络訪问连接.早晨又訪问不到了. 现 ...
- 编写Web Serviceclient訪问www.webxml.com.cn提供的服务
好久没更新博客了,近期各种忙. 之前做Web Service课程的作业,当中有一个实验.实验内容如题所看到的. 以下简单说下怎样编写Web Serviceclient訪问webxml.com.cn里的 ...
- 通过rinetd实现port转发来訪问内网的服务
一. 问题描写叙述 通过外网来訪问内网的服务 二. 环境要求 须要有一台能够外网訪问的机器做port映射.通过数据包转发来实现外部訪问阿里云的内网服务 三. 操作方法 做port映射的方案 ...
随机推荐
- 开发完 iOS 应用,接下去你该做的事
iOS专项总结 一个应用经过多次迭代后告一段落,接下去我们在技术上还可以做些什么呢?答案是提高代码的整体质量.关于这方面,除了我们常喊的 重构,测试也非常重要. 博主近期给我们的 iOS客户端代码来了 ...
- EditPlus集成Java编译和运行命令组建轻量级Java SE开发工具
http://www.gogogogo.me/development/EditPlus-Java.html
- wap站、手机APP 接入支付宝、微信、银联支付。
一.wap站 ①.支付宝接入 1.开发前准备:申请一个通过实名认证的企业支付宝账号,并申请开通手机WAP支付功能. 2.流程 参数准备: 企业支付宝账号的PID(也叫ParnerID)和KEY,如果使 ...
- Java将数据库数据导入EXCEL
一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现 须要导入一个第三方包下载地址 详细内容例如以下: 里面含有指导文档,index.html里面含有怎样读取数据库文 ...
- OpenGL核心之SSAO技术解说(一)
笔者介绍:姜雪伟,IT公司技术合伙人.IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
- unity hide/show text
using UnityEngine;using System.Collections; public class PlayerController:MonoBehaviour{ public U ...
- 微服务架构的进程间通信(IPC)
先抛出几个问题: 微服务架构的交互模式有哪些? 微服务常用的进程间通信技术有哪些? 如何处理部分请求失败? API的定义需要注意的事项有哪些 微服务的通信机制与SOA的通信机制之间的关系与区别 微服务 ...
- Linux服务器开发初步
服务器开发需要考虑的内容很多,比如服务器的架构.稳定性.性能以及负载能力等等. 事实上,在开发服务器的过程中,需要综合考虑各种因素,比如就客户端连接时间较短却又比较频繁的服务器(例如HTTP服务器 ...
- 关于Virtual的英语含义
不知道有人注意没有,virtual的英语含义是:实际的,事实上,实质上.但是在计算机英语内却表示:虚拟的意思.比如:virtual memery 虚拟内存,virtual reality 虚拟现实. ...
- php分页函数示例代码
分享一例php分页函数代码,用此函数实现分页代码很不错. 代码,php分页函数. <?php /* * Created on 2011-07-28 * Author : LKK , http:/ ...