zoukankan      html  css  js  c++  java
  • .net调用java webservice基于JBOSS服务器 学习笔记(一)

    1、遇到数组类型或List等复杂数据类型是,需要对其进行包装,就是将复杂数据类型放到一个类里面:

    public class VOCargoJTWS {
        /** JT列表  */
        private List<TBLCargoJT> cargoJTs;    
        /** 分页数据信息*/
        private PageInfo pageInfo;
        
        
        public VOCargoJTWS() {
            super();
        }
    
        @SuppressWarnings("unchecked")
        public VOCargoJTWS(PageInfo pageInfo) {
            super();
            this.cargoJTs = (List<TBLCargoJT>) pageInfo.getList();
            this.pageInfo = pageInfo;
            pageInfo.setList(null);
        }}

     2.基于JBOSS服务器发布webservice:

      在浏览器可以看到发布信息,访问地址http://lenovo-pc/EvisaWS/CargoJTService?wsdl 。

    @Stateless
    @WebService
    @WebContext(contextRoot = "/EvisaWS", urlPattern = "/CargoJTService")
    @SOAPBinding(style = SOAPBinding.Style.RPC)
    public class CargoJTWSBean implements CargoJTWS {
    
        private static final Logger logger = Logger.getLogger(CargoJTWSBean.class);
        @EJB
        private CargoJTServiceLocal cargoJTServiceLocal;
    
    
        @WebMethod
        @WebResult(partName = "return")
        public VOCargoJTWS findPageInfo(Integer currentPage, Integer pageCount)  {
            try {
                PageInfo pageInfo = cargoJTServiceLocal.findPageInfo1(currentPage, pageCount);            
                VOCargoJTWS cargoJTWS = new VOCargoJTWS(pageInfo);
                return cargoJTWS;
            } catch (Exception e) {
                logger.error(e);
            }
            return null;
        }
    }

     3、处理关联关系:

      如果类与类直接存在关联关系,不需要查询出子表信息时,可以直接将其设置为null。如果需要,那么可通过集合的size方法加载,子类的关联关系和父类关联关系的处理方式一样。

      如果出现循环调用,Parent--->Child--->Parent,可以在get属性上加 @XmlTransient 注释。

    @Stateless
    @Local(CargoJTServiceLocal.class)
    @LocalBinding(jndiBinding = "CargoJTServiceBean/local")
    @Remote(CargoJTServiceRemote.class)
    @RemoteBinding(jndiBinding = "CargoJTServiceBean/remote")
    public class CargoJTServiceBean implements CargoJTServiceLocal, CargoJTServiceRemote {
    
        private static final Logger logger = Logger.getLogger(CargoJTServiceBean.class);
        @EJB
        private CargoJTDaoLocal cargoJTDao;
    
    
        @SuppressWarnings("unchecked")
        public PageInfo findPageInfo1(Integer currentPage, Integer pageCount ) throws ServiceException {
            try {
                PageInfo piInfo = cargoJTDao.findPageInfo(currentPage, pageCount);
                List<TBLCargoJT> list = (List<TBLCargoJT>) piInfo.getList();
                for(TBLCargoJT cargoJT : list){
                    cargoJT.getAssessType().getCode();
                    cargoJT.setGoods(null);
                } 
                return piInfo;
            } catch (DAOException e) {
                logger.error(e);
                throw new ServiceException("", e);
            }
        }
    }

     4、这是.net根据wsdl生成的类列表:

      要生成   voCargoJTWS   这个对象也就是在c#中可以看到,那么这个对象里面必须有两个以上的属性,否则这个对象不会生成。

  • 相关阅读:
    3spring:生命周期,属性赋值,自动装配
    2spring注解:@Lazy,@Conditional,@import,FactoryBean接口
    1spring注解:@Configuration,@Bean,@ComponentScan(),@Scope
    10.spring:常用的数据库代码.....(不长使用了解即可)
    9.spring:事务管理(下):声明式事务管理
    原生JavaScript实现hasClass、addClass、removeClass、toggleClass
    表格去重复边框
    缓存工厂之Redis缓存
    【实践】Memcached实例解析
    c# is和as的区别
  • 原文地址:https://www.cnblogs.com/lbangel/p/3196084.html
Copyright © 2011-2022 走看看