一、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
,在generatedCode目录下生成訪问服务的代码。

四、新建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服务的更多相关文章

  1. Android跨进程訪问(AIDL服务)

    我将AndroidAIDL的学习知识总结一下和大家共享 在Android开发中,AIDL主要是用来跨进程訪问. Android系统中的进程之间不能共享内存,因此,须要提供一些机制在不同进程之间进行数据 ...

  2. 基于Apache CXF的Web Service服务端/客户端

    转自:https://www.aliyun.com/zixun/wenji/1263190.html CXF服务端: package com.sean.server; import javax.jws ...

  3. 怎样基于谷歌地图的Server缓存公布Image Service服务

    怎样基于谷歌地图的Server缓存公布Image Service服务 第一步:下载地图数据 下载安装水经注万能地图下载器,启动时仅仅选择电子.谷歌(这里能够依据自己的须要选择).例如以下图所看到的. ...

  4. Kivy A to Z -- 怎样从python代码中直接訪问Android的Service

    在Kivy中,通过pyjnius扩展能够间接调用Java代码,而pyjnius利用的是Java的反射机制.可是在Python对象和Java对象中转来转去总让人感觉到十分别扭.好在android提供了b ...

  5. CentOs虚拟机能够互相ping通,但无法訪问虚拟机服务

    CentOs虚拟机能够互相ping通,但无法訪问虚拟机服务 虚拟机ip:192.168.0.57 主机 ip:192.168.0.80 在虚拟机上搭建了php环境.虚拟机CentOs,主机win7 虚 ...

  6. 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice

    一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...

  7. Nginx 因 Selinux 服务导致无法远程訪问

    文章来源:http://blog.csdn.net/johnnycode/article/details/41947581 2014-12-16日 昨天晚上处理好的网络訪问连接.早晨又訪问不到了. 现 ...

  8. 编写Web Serviceclient訪问www.webxml.com.cn提供的服务

    好久没更新博客了,近期各种忙. 之前做Web Service课程的作业,当中有一个实验.实验内容如题所看到的. 以下简单说下怎样编写Web Serviceclient訪问webxml.com.cn里的 ...

  9. 通过rinetd实现port转发来訪问内网的服务

    一.   问题描写叙述 通过外网来訪问内网的服务 二.   环境要求 须要有一台能够外网訪问的机器做port映射.通过数据包转发来实现外部訪问阿里云的内网服务 三.   操作方法 做port映射的方案 ...

随机推荐

  1. C# -- 等待异步操作执行完成的方式 C# -- 使用委托 delegate 执行异步操作 JavaScript -- 原型:prototype的使用 DBHelper类连接数据库 MVC View中获取action、controller、area名称、参数

    C# -- 等待异步操作执行完成的方式 C# -- 等待异步操作执行完成的方式 1. 等待异步操作的完成,代码实现: class Program { static void Main(string[] ...

  2. #pragma pack

    原文链接: http://www.cnblogs.com/s7vens/archive/2012/03/06/2382236.html pack 为 struct, union 和 class 等的成 ...

  3. Html中meta标签详解--以前经常忽略的

    W3School介绍:http://www.w3school.com.cn/html5/html5_meta.asp meta是用来在HTML文档中模拟HTTP协议的响应头报文. meta 标签的用处 ...

  4. 数据库分享一: MySQL的Innodb缓存相关优化

    无论是对于哪一种数据库来说,缓存技术都是提高数据库性能的关键技术,物理磁盘的访问速度永 远都会与内存的访问速度永远都不是一个数量级的.通过缓存技术无论是在读还是写方面都可以大大提 高数据库整体性能. ...

  5. 笔记本上安装centos7

    1.下载centos的dvd镜像就够了.地址: 2.制作u盘镜像. 1)下载安装UltraIOS,(百度云->软件文件夹有,for me). 2)打开镜像,选择“启动”-->“写入硬盘镜像 ...

  6. 在FPGA中使用for循环一定浪费资源吗?

    渐渐地,发现自己已经习惯于发现细节,喜欢打破常规,真的非常喜欢这种feel. 相信很多人在书上或者博文上都有提出“在FPGA中使用for语句是很占用资源的”的观点,特权同学也不例外.那么,这种观点正确 ...

  7. [svc][op]vim常用命令汇总

    vim常用命令汇总: 定位 本行第一个字符 ctrl+$ 本行最后一个字符 0gg 文章首行 ctrl+G 文章行尾 u 撤销(Undo) 删除 D 从当前位置删除到行尾 ("d$" ...

  8. date 修改系统时间

    # date -s "2017/03/27 12:33:58"

  9. JNI中GetStringChars函数中的isCopy

    一直不明白这个isCopy是什么意思,只知道每次使用的时候都传NULL,今天看到了相关的资料,特来分享下. 当从JNI函数GetStringChars中返回得到字符串B时,如果B是原始字符串java. ...

  10. angular学习笔记(二)-创建angular模块

    如果在页面的html标签(或任意标签)中添加ng-app,表示对整个页面应用angular来管理. 他是一个模块. 模块有助于把东西从全局命名空间中隔离. 今天学习如何自定义创建模块: <!DO ...