cxf入门_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > cxf入门

cxf入门

 2012/1/20 10:05:12  stondeng  程序员俱乐部  我要评论(0)
  • 摘要:一、CXF官方网址:http://cxf.apache.org/,到这去下载最新的版本,解压二、创建一个工程,从解压的lib文件夹下导入如下包:cxf-2.5.1.jarwsdl4j-1.6.2.jarxmlschema-core-2.0.1.jarjetty-server-7.5.3.v20111011.jarjetty-util-7.5.3.v20111011.jarjetty-continuation-7.5.3.v20111011.jarjetty-http-7.5.3
  • 标签:
一、CXF官方网址:http://cxf.apache.org/,到这去下载最新的版本,解压
二、创建一个工程,从解压的lib文件夹下导入如下包:
    cxf-2.5.1.jar
    wsdl4j-1.6.2.jar
    xmlschema-core-2.0.1.jar
    jetty-server-7.5.3.v20111011.jar
    jetty-util-7.5.3.v20111011.jar
    jetty-continuation-7.5.3.v20111011.jar
    jetty-http-7.5.3.v20111011.jar
    jetty-io-7.5.3.v20111011.jar
    neethi-3.0.1.jar
三、创建服务器端代码
  1、接口Login.java
 
package cxf.service;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface Login {
	public String login(@WebParam(name="name")String name,@WebParam(name="password")String password);
}

  2、实现类LoginImpl.java
package cxf.service;

import javax.jws.WebService;


@WebService(endpointInterface="cxf.service.Login",serviceName="Login")
public class LoginImpl implements Login {

	public String login(String name, String password) {
		String result = "登录CXF 服务端成功!";
		if (!"cxf".equalsIgnoreCase(name) || !"cxf".equalsIgnoreCase(password)) {
			result = "用户名或密码不正确,请重新登录!";
		}
		return result;
	}

}

  3、发布
package cxf.service;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class Pub {
	public static void main(String[] args) {
		LoginImpl loginImpl = new LoginImpl();
		JaxWsServerFactoryBean bean = new JaxWsServerFactoryBean();
		bean.setServiceClass(Login.class);
		bean.setServiceBean(loginImpl);
		bean.setAddress("http://localhost:9000/helloWorld");
		bean.create();
		System.out.println("Finish....");
	}
}

将产生如下信息:
2012-1-19 12:28:22 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://service.cxf/}LoginService from class cxf.service.Login
2012-1-19 12:28:22 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be http://localhost:9000/helloWorld
2012-01-19 12:28:22.591:INFO:oejs.Server:jetty-7.5.3.v20111011
2012-01-19 12:28:22.669:INFO:oejs.AbstractConnector:Started SelectChannelConnector@localhost:9000 STARTING
2012-01-19 12:28:22.685:INFO:oejsh.ContextHandler:started o.e.j.s.h.ContextHandler{,null}
Finish....


四、创建客户端代码
  1、定制客户端调用WebService的接口,这个接口中的方法签名和参数信息可以从wsdl中的内容看到:Login.java
package cxf.client;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService(targetNamespace = "http://service.cxf/")
public interface Login {
	public String login(@WebParam(name="name")String name,@WebParam(name="password")String password);
}

  2、编写测试类:
package cxf.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class Client {
	public static void main(String[] args) {
		JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
		bean.setServiceClass(Login.class);
		bean.setAddress("http://localhost:9000/helloWorld");
		Login login = (Login) bean.create();
		System.out.println("result--->"+login.login("cxf", "cxf"));
	}
}

将产生如下信息:
2012-1-19 12:28:55 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://service.cxf/}LoginService from class cxf.client.Login
result--->登录CXF 服务端成功!
  • 相关文章
发表评论
用户名: 匿名