服务器端发布的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文件夹
-p 也就是package 对应java中的包
-d 输入目次,生成.java文件会在该目录下,会在该目录下生成-p的package目录。
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 {
}
输出结果,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://kyfxbl.iteye.com/blog/1432952
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。