使用CXF开发WebService客户端
2014-03-03 10:18
417 查看
使用CXF开发WebService客户端
(2012-12-25 09:15:47)
转载▼
首先服务器端,分为六步
第一步:创建一个Java 项目,我创建的是WS_Server。然后创建一个Interface,我创建的是HelloWorld,包名是edu.xaut.cxf.ws。该接口要用@WebService修饰
package edu.xaut.cxf.ws;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
String sayHello(String name);
}
第二步:新建一个class,来实现HelloWorld 接口,该类要用@WebService修饰
package edu.xaut.cxf.ws.impl;
import java.util.Date;
import javax.jws.WebService;
import edu.xaut.cxf.ws.HelloWorld;
@WebService(endpointInterface="edu.xaut.cxf.ws.HelloWorld",serviceName="HelloWorldWebService")
public class HelloWorldWS implements HelloWorld{
@Override
public String sayHello(String name) {
return "Hello " + name +",it is " + new Date();
}
}
第三步:引入Jar包
第四步:发布webservice
package test;
import javax.xml.ws.Endpoint;
import edu.xaut.cxf.ws.HelloWorld;
import edu.xaut.cxf.ws.impl.HelloWorldWS;
public class ServerMain {
public static void main(String args[]) {
HelloWorld helloWorld = new HelloWorldWS();
//调用Endpoint的publish方法发布web service
Endpoint.publish("http://202.200.113.204", helloWorld);
System.out.println("publich success!");
}
}
第五步:运行
运行结果是:publich success!
第六步:访问http://202.200.113.204/?wsdl,查看是否显示 wsdl,如果正常,会出现如下图所示:
接着开发客户端
第一步:创建一个Java 项目,我创建的是WS_Client
第二步:调用CXF提供的wsdl2java工具,根据wsdl文档生成相应的Java代码。不管是哪种开发语言都要提供并暴露WSDL文档
具体操作:注:我的workspace在F盘,先转到src路径,F:\workspace\WS_Client\src,然后使用wsdl2java
我的是wsdl2java http://202.200.113.204/?wsdl
然后会在src下自动生成一些文件。wsdl2java所生成的类中,一个继承了service的类,该类的实例可以当工厂来使用
第三步:创建ClientMain类,
package wuqiang;
import edu.xaut.cxf.ws.HelloWorld;
import edu.xaut.cxf.ws.impl.HelloWorldWebService;
public class ClientMain {
public static void main(String args[]) {
HelloWorldWebService factory = new HelloWorldWebService();
// 此处返回的只是远程WebService的代理
HelloWorld helloWorld = factory.getHelloWorldWSPort();
System.out.println(helloWorld.sayHello("Libra"));
}
}
第四步:运行
运行结果:Hello Libra,it is Tue Dec 25 10:35:56 CST 2012
(2012-12-25 09:15:47)
转载▼
标签:杂谈 | 分类: Java学习 |
第一步:创建一个Java 项目,我创建的是WS_Server。然后创建一个Interface,我创建的是HelloWorld,包名是edu.xaut.cxf.ws。该接口要用@WebService修饰
package edu.xaut.cxf.ws;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
String sayHello(String name);
}
第二步:新建一个class,来实现HelloWorld 接口,该类要用@WebService修饰
package edu.xaut.cxf.ws.impl;
import java.util.Date;
import javax.jws.WebService;
import edu.xaut.cxf.ws.HelloWorld;
@WebService(endpointInterface="edu.xaut.cxf.ws.HelloWorld",serviceName="HelloWorldWebService")
public class HelloWorldWS implements HelloWorld{
@Override
public String sayHello(String name) {
return "Hello " + name +",it is " + new Date();
}
}
第三步:引入Jar包
第四步:发布webservice
package test;
import javax.xml.ws.Endpoint;
import edu.xaut.cxf.ws.HelloWorld;
import edu.xaut.cxf.ws.impl.HelloWorldWS;
public class ServerMain {
public static void main(String args[]) {
HelloWorld helloWorld = new HelloWorldWS();
//调用Endpoint的publish方法发布web service
Endpoint.publish("http://202.200.113.204", helloWorld);
System.out.println("publich success!");
}
}
第五步:运行
运行结果是:publich success!
第六步:访问http://202.200.113.204/?wsdl,查看是否显示 wsdl,如果正常,会出现如下图所示:
接着开发客户端
第一步:创建一个Java 项目,我创建的是WS_Client
第二步:调用CXF提供的wsdl2java工具,根据wsdl文档生成相应的Java代码。不管是哪种开发语言都要提供并暴露WSDL文档
具体操作:注:我的workspace在F盘,先转到src路径,F:\workspace\WS_Client\src,然后使用wsdl2java
我的是wsdl2java http://202.200.113.204/?wsdl
然后会在src下自动生成一些文件。wsdl2java所生成的类中,一个继承了service的类,该类的实例可以当工厂来使用
第三步:创建ClientMain类,
package wuqiang;
import edu.xaut.cxf.ws.HelloWorld;
import edu.xaut.cxf.ws.impl.HelloWorldWebService;
public class ClientMain {
public static void main(String args[]) {
HelloWorldWebService factory = new HelloWorldWebService();
// 此处返回的只是远程WebService的代理
HelloWorld helloWorld = factory.getHelloWorldWSPort();
System.out.println(helloWorld.sayHello("Libra"));
}
}
第四步:运行
运行结果:Hello Libra,it is Tue Dec 25 10:35:56 CST 2012
相关文章推荐
- 语音编解码芯片AMBE2000中文手册
- JS二维数组的定义说明
- J2EE领域的一些技术框架结构图
- java的System.getProperty()方法可以获取的值
- Python学习笔记
- Myeclipse 启动卡死问题解决办法
- JVM方法内联
- POJ 2796 Feel Good (单调栈)
- [问题2014S02] 复旦高等代数II(13级)每周一题(第二教学周)
- android Theme使用二
- CEdit重绘垂直居中显示
- Python - 每次处理一个字符
- java使用泛型实现栈结构示例分享
- Web service是什么?
- EasyGame网络游戏服务器解决方案
- Python - 每次处理一个字符
- 计算几何三维模板
- 在Lib中无法创建WPF Window控件?
- android中Bitmap的放大和缩小的方法
- datagrid单元格格式化样式化