1:Webservice 服务端创建定义(axis)
/**
* 定义webservice服务(可以是接口和实现类)
* 服务端发布: 参数1:服务的发布地址
参数2:服务的实现者
Endpoint.publish("http://192.168.1.104:90/hello", new HelloWebservice());
* @author admin
* 1:用命令生成客户端程序:wsimport -s . http://192.168.1.105:86/hello?wsdl
* 2:用eclipse生成客户端程序
*/
@WebService
public class HelloService {
public String getMsg(String msg){
System.out.println("服务端接收到:"+msg);
return "给客户端返回:"+msg;
}
@WebMethod(exclude=false)
public String sayHello(String msg){
System.out.println("服务端接收请求:"+msg);
return "服务端已经响应:"+msg;
}
public String sayHello1(String msg){
System.out.println("服务端接收请求:"+msg);
return "服务端已经响应:"+msg;
}
public static void main(String[] args) {
System.out.println("发布webservice服务开始");
Endpoint.publish("http://192.168.1.106:90/hello", new HelloService());
System.out.println("发布webservice服务完成");
}
}
1: 客户端创建
public class HelloServiceClient {
public static void main(String[] args) throws ServiceException, RemoteException {
HelloServiceService hs=new HelloServiceServiceLocator();
HelloService service=hs.getHelloServicePort();
String message=service.getMsg("客户端调用webservice服务1111");
String hello=service.sayHello("hello");
System.out.println(message);
System.out.println(hello);
}
}
二:CXF
1:建立项目
2:导包(CXF包)
3:生成服务端并发布webservice服务
使用ServerFactoryBean 发布CXF服务
/**
* 使用ServerFactoryBean发布CXF的WEB服务
* 可以使用:ClientProxyFactoryBean调用服务
* public static void main(String args[]) throws Exception {
ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
if (args != null && args.length > 0 && !"".equals(args[0])) {
factory.setAddress(args[0]);
} else {
factory.setAddress("http://localhost:9000/Hello");
}
HelloWorld client = factory.create(HelloWorld.class);
System.out.println("Invoke sayHi()....");
System.out.println(client.sayHi(System.getProperty("user.name")));
System.exit(0);
}
* @author admin
*
*/
public class StudentService {
public String getUserName(String userid){
System.out.println("服务端接收到请求:"+userid);
return "返回给客户端:"+userid;
}
public static void main(String[] args) {
System.out.println("webservice服务发布开始");
ServerFactoryBean serverbean=new ServerFactoryBean();
//服务的发布地址
serverbean.setAddress("http://192.168.1.106:91/stduentHello");
//提供服务的类的类型
serverbean.setServiceClass(StudentService.class);
//提供服务的实例
serverbean.setServiceBean(new StudentService());
//发布服务:publish
serverbean.create();
System.out.println("webservice服务发布成功");
}
}
4:利用eclipse生成客户端程序
客户端源码:
public class StudentServiceClient {
public static void main(String[] args) throws Exception {
StudentService ss=new StudentServiceLocator();
StudentServicePortType stype=ss.getStudentServicePort();
String username=stype.getUserName("2017001");
System.out.println(username);
}
}
使用JaxWsServerFactoryBean发布CXF的WEB服务
/**
* 使用JaxWsServerFactoryBean发布CXF的WEB服务(类上必须加入@WebService注解,否则不暴露请求方法)
* 可以使用:JaxWsProxyFactoryBean调用服务
* @author admin
*
*/
@WebService
public class JaxWsWebService {
/**
* 业务方法
* @param msg
* @return
*/
public String testHello(String msg){
System.out.println("服务端接收请求:"+msg);
return "服务端响应:"+msg;
}
public static void main(String[] args) {
JaxWsServerFactoryBean serverbean=new JaxWsServerFactoryBean();
//服务的发布地址
serverbean.setAddress("http://192.168.1.106:92/jwservice");
//提供服务的类的类型
serverbean.setServiceClass(JaxWsWebService.class);
//提供服务的实例
serverbean.setServiceBean(new JaxWsWebService());
//发布服务:publish
serverbean.create();
System.out.println("webservice服务发布成功");
}
}
例二:
/**
* 使用JaxWsServerFactoryBean发布CXF的WEB服务(类上必须加入@WebService注解,否则不暴露请求方法)
* 可以使用:JaxWsProxyFactoryBean调用服务
* @author admin
*
*/
public class HelloServer {
public static void main(String[] args) {
JaxWsServerFactoryBean serverbean=new JaxWsServerFactoryBean();
//服务的发布地址
/*serverbean.setAddress("http://192.168.1.93:97/service");*/
serverbean.setAddress("http://localhost:106/service");
//提供服务的类的类型
serverbean.setServiceClass(HelloService.class);//该类型(建议使用接口)加入注解
//提供服务的实例
serverbean.setServiceBean(new HelloServiceImpl());
//加入请求消息拦截器
serverbean.getInInterceptors().add(new LoggingInInterceptor());
//加入响应消息拦截器
serverbean.getInInterceptors().add(new LoggingOutInterceptor());
//发布服务:publish
serverbean.create();
System.out.println("webservice服务发布成功");
}
}
使用JaxWsProxyFactoryBean调用webservice的WEB服务
/**
* 使用JaxWsServerFactoryBean发布CXF的WEB服务(类上必须加入@WebService注解,否则不暴露请求方法)
* 使用:JaxWsProxyFactoryBean调用服务
* @author admin
*
*/
public class JaxWsServerFactoryBeanClient {
public static void main(String[] args) {
JaxWsProxyFactoryBean client=new JaxWsProxyFactoryBean();
client.setAddress("http://localhost:106/service");
client.setServiceClass(HelloService.class);
HelloService service= client.create(HelloService.class);
String msg=service.testHello("测试");
System.out.println("客户端输出:"+msg);
}
}