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#中可以看到,那么这个对象里面必须有两个以上的属性,否则这个对象不会生成。