微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CXF调用webservice

服务器端发布的service地址为:http://localhost:8080/webP/webservice/helloWorld

1)在客户端先访问下,看能否访问到,在服务器发布的地址后面加上URL+?wsdl;如:http://localhost:8080/webP/webservice/helloWorld?wsdl 访问。

如果看到xml文档信息,说明正常。

2)在dos下输入cmd运行,找到解压的apache-cxf-2.6.1的bin目录下, 运行

wsdl2java -p ws http://localhost:8080/webP/webservice/helloWorld?wsdl 在apache-cxf-2.6.1的bin目录就生成了ws文件

如图:

cxf <wbr>调用webservice




-p 也就是package 对应java中的包

-d 输入目次,生成.java文件会在该目录下,会在该目录下生成-p的package目录。

-client 生成客户端测试web service的代码.
-server 生成办事器启动web service的代码.
-impl 生成web service的实现代码.
-ant 生成build.xml文件.
-all 生成上方-client -server -impl -ant 对应的所有文件.


3)把生成的ws文件夹中的java文件放到自己的项目中,这些java文件就是调用webservice所需要的类

4)运行测试类

import java.util.ArrayList;
import java.util.List;

import org.apache.cxf.jaxws.JaxWsProxyfactorybean;

import ws.HelloWorld;
import ws.User;
 
public class HelloWorldClient {
 
 public static void main(String[] args) {
  JaxWsProxyfactorybean svr = new JaxWsProxyfactorybean();
  svr.setServiceClass(HelloWorld.class);
  svr.setAddress("http://localhost:8080/webP/webservice/helloWorld");
  HelloWorld hw = (HelloWorld) svr.create();
  User user = new User();
  user.setName("Tony1");
  System.out.println(hw.sayHiToUser(user));
  System.out.println(hw.sayHi("wang"));
  
  List<User> list=new ArrayList<User>();
  list.add(user);
  System.out.println(hw.sayHiToUserList(list));
 }
}

输出结果,over!

转载:http://blog.sina.com.cn/s/blog_8ee5914d01016ctl.html

方式一:通过ClientProxyfactorybean 调用

public static <T> T getService(String url,Class<T> cls) {
  ClientProxyfactorybean factory = new ClientProxyfactorybean();
  factory.setServiceClass(cls);
  factory.setAddress(url);
  T service = (T) factory.create();
  return service;
 }

 

方式二:通过JaxWsDynamicclientFactory 调用

JaxWsDynamicclientFactory dcf = JaxWsDynamicclientFactory.newInstance();
Client client = dcf.createClient("http://192.168.1.102:12000/testService?wsdl");

Object[] objects = client.invoke("test","test args");

附:cxf-dosgi发布webservice时只需要增加以下配置:

Dictionary<String,String> props = new Hashtable<String,String>();
  props.put("service.exported.interfaces","*");
  props.put("service.exported.intents","SOAP");
  props.put("service.exported.configs","org.apache.cxf.ws");
  props.put("org.apache.cxf.ws.address","http://192.168.1.102:12000/testService?wsdl");

转载:http://blog.csdn.net/einarzhang/article/details/6225921

http://kyfxbl.iteye.com/blog/1432952

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐