发布:注意接口和实现类都要使用@WebService注解
接口:
package Server;
import javax.jws.WebService;
@WebService
public interface UserService {
public String getName(String str);
}
接口实现类:
package Server;
import javax.jws.WebService;
@WebService
public class UserServiceImpl implements UserService {
@Override
public String getName(String str) {
// TODO Auto-generated method stub
return "你好"+str;
}
}
发布方法:
package com.cxf.service;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class Server {
public static void main(String[] args) {
String addr="http://127.0.0.1/user";
JaxWsServerFactoryBean bean=new JaxWsServerFactoryBean();
UserService userService=new UserServiceImpl();
bean.setAddress(addr);//要暴露的接口地址
bean.setServiceClass(UserService.class);//设置接口类
bean.setServiceBean(userService);//设置实现类
bean.create();//发布服务
System.err.println("服务启动成功");
}
}
调用:
创建调用到方法的projet
生成客户端:
wsdl2java http://127.0.0.1/hello?wsdl
调用方法:
import server.UserServiceImpl;
import server.UserServiceImplService;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
UserServiceImplService userServiceImplService = new UserServiceImplService();
UserServiceImpl port = userServiceImplService.getPort(UserServiceImpl.class);
String str=port.getName("ldl");
System.out.println(str);
}
}