展开全部
public static void main(String[] args) throws Exception {
//这个是用cxf 客户端访问cxf部署的webservice服务
//千万记住,访问cxf的webservice必须加上namespace ,否则通不过
//现在又另外一个问题,传递过去的参数服务端接收不到
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/facelook/services/facelookWebService?wsdl");
//url为调用webService的wsdl地址
QName name=new QName("http://server.webservice.facelook.com/","getAlbumList");
//namespace是命名空间,methodName是方法名
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ " <facelook>"
+ " <condition>"
+ " <name>家</name>"
+ " <description></description>"
+ " <pageno></pageno>"
+ " <pagesize></pagesize>"
+ " </condition>"
+ " </facelook>";
//paramvalue为参数值
Object[] objects=client.invoke(name,xmlStr);
//调用web Service//输出调用结果
System.out.println(objects[0].toString());
}
//这个是用cxf 客户端访问cxf部署的webservice服务
//千万记住,访问cxf的webservice必须加上namespace ,否则通不过
//现在又另外一个问题,传递过去的参数服务端接收不到
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/facelook/services/facelookWebService?wsdl");
//url为调用webService的wsdl地址
QName name=new QName("http://server.webservice.facelook.com/","getAlbumList");
//namespace是命名空间,methodName是方法名
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ " <facelook>"
+ " <condition>"
+ " <name>家</name>"
+ " <description></description>"
+ " <pageno></pageno>"
+ " <pagesize></pagesize>"
+ " </condition>"
+ " </facelook>";
//paramvalue为参数值
Object[] objects=client.invoke(name,xmlStr);
//调用web Service//输出调用结果
System.out.println(objects[0].toString());
}
展开全部
cxf是webservice的一种实现 ,你创建一个cxf工程(服务端),然后生成一个客户端,就可以调用webservice了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用工具生成代理类,myeclipse就可以 ,然后调用的就是楼上方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
// 创建WebService客户端代理工厂
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
// 注册WebService接口
factory.setServiceClass(IHelloWorld.class);
// 设置WebService地址
factory.setAddress("http://localhost:9001/HelloWorld");
IHelloWorld iHelloWorld = (IHelloWorld) factory.create();
System.out.println("invoke webservice...");
System.out.println("message context is:" + iHelloWorld.sayHi("Josen"));
System.exit(0);
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
// 注册WebService接口
factory.setServiceClass(IHelloWorld.class);
// 设置WebService地址
factory.setAddress("http://localhost:9001/HelloWorld");
IHelloWorld iHelloWorld = (IHelloWorld) factory.create();
System.out.println("invoke webservice...");
System.out.println("message context is:" + iHelloWorld.sayHi("Josen"));
System.exit(0);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-20
展开全部
如何编写WebService客户端
CXF框架提供了调用WebService的客户端API,使用起来也比较方便。下面是CXF客户端的写法:
ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
factory.setServiceClass(IWebService.class);
factory.setAddress(
"http://localhost:8080/vo/services/SampleWebService");
IWebService client = (IWebService)factory.create();
System.out.println("Invoke execute()....");
System.out.println(client.execute("Hello World"));
在启动服务端后,运行这段代码,客户端终端窗口上会显示“Hello World”,服务端的信息窗口也会显示一个“Hello World”。这表示WebService能成功运行了。
CXF框架提供的客户端API封装了WebService的内幕,虽然它很好用,但使用者却不能理解WebService的运行机制。
CXF框架提供了调用WebService的客户端API,使用起来也比较方便。下面是CXF客户端的写法:
ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
factory.setServiceClass(IWebService.class);
factory.setAddress(
"http://localhost:8080/vo/services/SampleWebService");
IWebService client = (IWebService)factory.create();
System.out.println("Invoke execute()....");
System.out.println(client.execute("Hello World"));
在启动服务端后,运行这段代码,客户端终端窗口上会显示“Hello World”,服务端的信息窗口也会显示一个“Hello World”。这表示WebService能成功运行了。
CXF框架提供的客户端API封装了WebService的内幕,虽然它很好用,但使用者却不能理解WebService的运行机制。
参考资料: 深入浅出WebService.doc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询