远程调用方法

示例:

找到当前项目的servicefacade文件夹打开相关facade文件

@ServiceEntry(serviceId=(short) 0x0004, name="transfer")
    public void handleSrv0004(ServiceRequest request, ServiceResponse response) {
        warehouseServiceWrapper.transfer(request, response);
    }
    
    @ServiceEntry(serviceId=(short) 0x0005, name="warehouseManageList")
    public void handleSrv0005(ServiceRequest request, ServiceResponse response) {
        warehouseServiceWrapper.warehouseManageList(request, response); }

===============上面图片有误,看代码 =============

实体类放在dto下

门面类写完之后写包装类,找到servicewrapper

代码如下

    public void warehouseManageList(ServiceRequest request, ServiceResponse response){
        this.getServiceTemplate().execute(request, response, new ServiceExecutorAdapter() {
            public void executeService(ServiceRequest request, ServiceResponse response) throws Exception{
                WarehouseReceiptMasterUpEntity upEntity = EntityUtils.deserialize(request.getRequestData(),WarehouseReceiptMasterUpEntity.class);
                PagesDownResultEntity<TblWarehouseReceiptMasterEntity> rtn = warehouseManageService.warehouseManageList(upEntity);
                response.setResponseData(EntityUtils.serialize(rtn));
                logger.info("warehouseManageList:" + JsonUtility.toJSONString(upEntity));
            }
        });
    }

写完之后再找到远程服务

创建实现类

public class WarehouseManageServiceStub implements IWarehouseManageService {

    @Override
    public PagesDownResultEntity<TblWarehouseReceiptMasterEntity> warehouseManageList(WarehouseReceiptMasterUpEntity upEntity) throws DBException, ApplicationException {
        Type type=new TypeReference<TblWarehouseReceiptMasterEntity>(){}.getType();
        return RemoteUtils.executeGet(type, RegionNameEnum.SptWarehouse, (short) 0x0005, upEntity);
    }

}

接着在配置文件里进行配置

 

<bean id="warehouseManageServiceStub"    class="com.autrade.spt.remoting.stub.warehouse.service.WarehouseManageServiceStub"></bean>

 

posted @ 2018-04-08 18:41  十黎九夏  阅读(201)  评论(0)    收藏  举报