Heim > Datenbank > MySQL-Tutorial > CXF学习笔记(2)

CXF学习笔记(2)

WBOY
Freigeben: 2016-06-07 15:13:01
Original
1136 Leute haben es durchsucht

上一节中已经成功的发布了一个服务端webservice,这一部分将默认客户端调用webservice 这里我们重新建立了一个新的工程CXF-Client,把上一节中列举的jar包都搞过来即可,调用方式采用了和RMI类的机制,即客户端直接服务器端提供的服务接口(interface),CXF通过

上一节中已经成功的发布了一个服务端webservice,这一部分将默认客户端调用webservice

这里我们重新建立了一个新的工程CXF-Client,把上一节中列举的jar包都搞过来即可,调用方式采用了和RMI类似的机制,即客户端直接服务器端提供的服务接口(interface),CXF通过运行时代理生成远程服务的代理对象,在客户端完成对webservice的访问

几个必填的字段:setAddress-这个就是我们发布webservice时候的地址,保持一致

HelloWorldService:需要服务器端提供单独的Jar文件过来

package com.crazycoder2010.webservice.cxf.client;

import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import com.crazycoder2010.webservice.cxf.server.HelloWorldService;

public class Client {
	public static void main(String[] args) {
		JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
		bean.getInInterceptors().add(new LoggingInInterceptor());
		bean.getInFaultInterceptors().add(new LoggingOutInterceptor());
		bean.setServiceClass(HelloWorldService.class);
		bean.setAddress("http://localhost:9090/helloWorldService");
		HelloWorldService helloWorldService = (HelloWorldService)bean.create();
		String result = helloWorldService.sayHello("Kevin");
		System.out.println(result);
	}
}
Nach dem Login kopieren

运行输出:

2011-8-9 21:32:20 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://server.cxf.webservice.crazycoder2010.com/}HelloWorldServiceService from class com.crazycoder2010.webservice.cxf.server.HelloWorldService
2011-8-9 21:32:41 org.apache.cxf.interceptor.AbstractLoggingInterceptor log
信息: Inbound Message
----------------------------
ID: 1
Response-Code: 200
Encoding: UTF-8
Content-Type: text/xml;charset="utf-8"
Headers: {Content-type=[text/xml;charset="utf-8"], Transfer-encoding=[chunked]}
Payload: <?xml version="1.0" ?><envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><body><sayhelloresponse xmlns:ns2="http://server.cxf.webservice.crazycoder2010.com/"><return>Hello Kevin</return></sayhelloresponse></body></envelope>
--------------------------------------
Hello Kevin
Nach dem Login kopieren
小结:这种调用service的好处在于调用过程非常简单,就几行代码就完成一个webservice的调用,但是客户端也必须依赖服务器端的接口,这种调用方式限制是很大的,要求服务器端的webservice必须是java实现--这样也就失去了使用webservice的意义
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage