基于jdk wsimport工具訪问外部webservice

一、Wsimport简单介绍

Wsimport是jdk自带的。能够依据wsdl文档生成客户点调用代码的工具。

不管server端的webservice是用什么语言写的,都将在client生成java代码。

server端用什么语言写的并不重要。

Wsimport位于JAVA_HOME/bin文件夹下。Wsimport经常使用的參数有:

-d<文件夹>  --将生成.class文件。

默认參数

-s<文件夹>  --将生成.java文件。

-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服务。

三、利用wsimport工具生成client调用服务代码

在D盘新建目录generatedCode

打开cmd命令,切换到该文件夹下

执行wsimport –s . http://localhost:8080/People?

wsdl,在generatedCode目录下生成訪问服务的代码。

把生成的代码中.class文件删除,仅仅保留.java的java类文件。

四、新建clientproject,调用webservice服务

在eclipse中新建javaproject,命名为CXFClient

将第三部生成的.java类文件总体拷贝到src文件夹下,复制完毕之后其文件夹结构例如以下图所看到的:

在src文件夹下新建com.webservice.use包,在包中新建类ServiceUse.用于完毕对webservice的调用,代码为:

package com.webservice.use;

import com.hellocxf.serviceimpl.People;
importcom.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获取的。

时间: 2024-10-24 10:14:08

基于jdk wsimport工具訪问外部webservice的相关文章

基于jdk wsimport工具访问外部webservice

一.Wsimport简介 Wsimport是jdk自带的,可以根据wsdl文档生成客户点调用代码的工具.无论服务器端的webservice是用什么语言写的,都将在客户端生成java代码.服务器端用什么语言写的并不重要.Wsimport位于JAVA_HOME/bin目录下.Wsimport常用的参数有: -d<目录>  --将生成.class文件.默认参数 -s<目录>  --将生成.java文件. -p<生成的新包名>  --将生成类放于指定的包下 (Wsdlurl)

让devstack中的vm訪问外网

devstack默认会建立一个Public网络,地址为172.24.4.0/24,可是这个网络并非运营商分配给我们的网络.所以仅仅能通过nat的方式让devstack建立的虚拟机訪问外网. br-ex和br-phy都不须要绑定到不论什么的物理网卡,全部网络都是内部的. 想让vm通过Public訪问外部网络,须要运行例如以下命令: ifconfig br-ex 172.24.4.1/24 iptables -t nat -I POSTROUTING -s 172.24.4.0/24 -j MASQ

ABAP调用外部WebService

TCode:se80 选择 Package,输入我们自己的开发包,后回车 右击 开发包名称,选择菜单 出现创建向导窗体 选择"Service Consumer",点击 继续 选择"external WSDL",点击继续 选择"URL",点击继续 输入WebService的WSDL地址,就是WebService地址的后面加上?wsdl这个參数. 点击继续 选择开发类和创建传输号,点击继续. 点击"Complete" ,出现Web

基于HttpClient 4.3的可訪问自签名HTTPS网站的新版工具类

本文出处:http://blog.csdn.net/chaijunkun/article/details/40145685,转载请注明.因为本人不定期会整理相关博文,会对相应内容作出完好.因此强烈建议在原始出处查看此文. HttpClient在当今Java应用中的位置越来越重要.从该项目的变迁过程我们不难发现,其已经从apache-commons众多的子项目中剥离,一跃成为现在的顶级项目.可见它的分量.然而随着项目的升级和架构的调整.非常多曾经经常使用的类和方法都已被打上了@Deprecated

JAVA WEBSERVICE服务端&amp;客户端的配置及调用(基于JDK)

前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也是云里雾里的,索性最后得以解决,现将代码及方法发布如下,有需要的朋友可以参考,谢谢! --------------------------------------------------- WEBSERVICE服务端 package lavasoft; import javax.jws.WebMethod;

外网訪问内网工具ngrok tunnel 用法

在软件开发測试过程中.我们会常常遇到须要站点部署測试或者给客户演示这种需求.通常的做法是申请一个域名和空间,将站点放到外网上给客户演示. 这样的方法确实可行只是会有两点不好,第一是添加了开支.二是出现故障须要如今自己电脑上改好bug又一次上传到外网. 那么问题来了,有没有一种简单的方法,让客户之间訪问开发人员的电脑上的站点?答案就是以下我将要为大家介绍的外网訪问内网工具ngrok tunnel 的用法. tunnel能够让公网訪问内网部署的网站,对于软件开发測试非常有帮助. 因为国外官网常常被墙

通过站点的訪问统计优化站点-10个免费的站点统计和分析工具

站点訪问统计能为你带来什么? 第一,查看訪问者的国家和地区: 第二,查看訪问者来源,如用是从搜索引擎,还是从其它网站的友情链接链接引入 第三,查看訪问者使用的操作系统,显示分辨率等 第四,查看站点哪些文章或页面訪问率较高,受用户欢迎 以下是10个免费的站点统计和分析工具: Google Analytics评分: 8/10 最好最著名的免费站点统计和解析工具.它尽可能提供一切你求之不得的数据.主要长处是没有不论什么限制. Google Analytics 不解析的东西: a. 你无法查看訪客的 I

创建发布Webservice以及wsimport工具

一. 通过wsimport生成本地代理调用WebService 1.推荐的访问服务方式 WebService已纳入w3c规范,其他的平台都支持该规范 :J2EE\Php\.NET都支持wsimport 方式,即对远程的WebService生成本地代理,再通过本地代理来访问WebService.客户端通过wsimport的方式生成java语言本地代理,并把远程的服务解析成本地的类和接口. A.服务访问要求 Jdk的版本要在Jdk 1.6.21及以上. B. wsimport的使用 wsimport

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

一.   问题描写叙述 通过外网来訪问内网的服务 二.   环境要求 须要有一台能够外网訪问的机器做port映射.通过数据包转发来实现外部訪问阿里云的内网服务 三.   操作方法 做port映射的方案有非常多.Linux下的ssh tunnel和windows下的portmap等等,这里分享一个更稳定和简单的小工具rinetd 四.   下载安装 $ wget http://www.boutell.com/rinetd/http/rinetd.tar.gz $ tar -xvf rinetd.t