加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

CXF调用webservice

发布时间:2020-12-17 00:14:51 所属栏目:安全 来源:网络整理
导读:服务器端发布的service地址为:http://localhost:8080/webP/webservice/helloWorld 1)在客户端先访问下,看能否访问到,在服务器发布的地址后面加上URL+?wsdl;如:http://localhost:8080/webP/webservice/helloWorld?wsdl 访问。 如果看到xml文档信息,说明

服务器端发布的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读