Webservice

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: 客户端创建

185431_Jbar_3435132.png


 

 

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);
}
}
 

转载于:https://my.oschina.net/m243043962/blog/1579555

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值