首页 > 代码库 > WebService netbeans glassfish

WebService netbeans glassfish

首先安装NetBeans,jdk1.7 glassfish3.1.1.2 安装完成之后配置数据源

首先配置Jdbc连接池-->新建-->输入名字和资源类型-->可将其余属性删除只添加 url user password

完成之后可以ping一下测试是否成功

配置JDBC资源-->新建-->名字和选择连接池

简单的数据源便配置完成

 

netbeans -->新建项目-->J2EE-->EJB模块(Ejb项目建立成功)

在配置文件(setup)添加数据源配置文件 persistence.xml

<?xml version="1.0" encoding="UTF-8"?><persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">  <persistence-unit name="uappPU" transaction-type="JTA">        <provider>org.hibernate.ejb.HibernatePersistence</provider>        <jta-data-source>jdbc/uapp</jta-data-source> <!-- 此名为glassfish数据源的jdbc名字相同-->        <exclude-unlisted-classes>false</exclude-unlisted-classes>        <properties>            <property name="hibernate.hbm2ddl.auto" value=http://www.mamicode.com/"update"/>            <property name="hibernate.show_sql" value=http://www.mamicode.com/"true"/>            <property name="hibernate.format_sql" value=http://www.mamicode.com/"true"/>        </properties>    </persistence-unit></persistence>

实体类

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package com.entity;import java.io.Serializable;import java.util.List;import javax.persistence.Basic;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Lob;import javax.persistence.NamedQueries;import javax.persistence.NamedQuery;import javax.persistence.OneToMany;import javax.persistence.Table;import javax.validation.constraints.Size;import javax.xml.bind.annotation.XmlRootElement;/** * * @author song */@Entity@Table(name = "club")@XmlRootElement@NamedQueries({    @NamedQuery(name = "Club.findById",query = "SELECT a FROM Club a WHERE a.clubId = :id"),    @NamedQuery(name = "Club.findByName",query = "SELECT a FROM Club a WHERE a.clubName LIKE :clubName"),    @NamedQuery(name = "Club.delById",query = "DELETE FROM Club a where a.clubId = :id")})public class Club implements Serializable {    private static final long serialVersionUID = 1L;       private Integer clubId;      private String clubDescription;        private String clubName;       private String contactName;        private String contactTel;       private String picUrl;    private List<UserClub> userClubList;    public Club() {    }    public Club(Integer clubId) {        this.clubId = clubId;    }    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    @Basic(optional = false)    @Column(name = "club_id")    public Integer getClubId() {        return clubId;    }    public void setClubId(Integer clubId) {        this.clubId = clubId;    }        @Lob    @Size(max = 2147483647)    @Column(name = "club_description")    public String getClubDescription() {        return clubDescription;    }    public void setClubDescription(String clubDescription) {        this.clubDescription = clubDescription;    }        @Size(max = 100)    @Column(name = "club_name")    public String getClubName() {        return clubName;    }    public void setClubName(String clubName) {        this.clubName = clubName;    }    @Size(max = 100)    @Column(name = "contact_name")    public String getContactName() {        return contactName;    }    public void setContactName(String contactName) {        this.contactName = contactName;    }    @Size(max = 20)    @Column(name = "contact_tel")    public String getContactTel() {        return contactTel;    }    public void setContactTel(String contactTel) {        this.contactTel = contactTel;    }    @Lob    @Size(max = 2147483647)    @Column(name = "pic_url")    public String getPicUrl() {        return picUrl;    }        public void setPicUrl(String picUrl) {        this.picUrl = picUrl;    }    @OneToMany(fetch = FetchType.LAZY , mappedBy = "club" )    public List<UserClub> getUserClubList() {        return userClubList;    }    public void setUserClubList(List<UserClub> userClubList) {        this.userClubList = userClubList;    }        @Override    public int hashCode() {        int hash = 0;        hash += (clubId != null ? clubId.hashCode() : 0);        return hash;    }    @Override    public boolean equals(Object object) {        // TODO: Warning - this method won‘t work in the case the id fields are not set        if (!(object instanceof Club)) {            return false;        }        Club other = (Club) object;        if ((this.clubId == null && other.clubId != null) || (this.clubId != null && !this.clubId.equals(other.clubId))) {            return false;        }        return true;    }    @Override    public String toString() {        return "com.haiersoft.uapp.entity.Club[ clubId=" + clubId + " ]";    }    }

数据库操作类

package com.dao;import java.util.List;import javax.persistence.EntityManager;/** * * @author chenlitao */public abstract class AbstractDao<T> {    private Class<T> entityClass;    public AbstractDao(Class<T> entityClass) {        this.entityClass = entityClass;    }    protected abstract EntityManager getEntityManager();    public void create(T entity) {        getEntityManager().persist(entity);    }    public void edit(T entity) {        getEntityManager().merge(entity);    }    public void remove(T entity) {        getEntityManager().remove(getEntityManager().merge(entity));    }    public T find(Object id) {        return getEntityManager().find(entityClass, id);    }    public List<T> findAll() {        javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();        cq.select(cq.from(entityClass));        return getEntityManager().createQuery(cq).getResultList();    }    public List<T> findRange(int[] range) {        javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();        cq.select(cq.from(entityClass));        javax.persistence.Query q = getEntityManager().createQuery(cq);        q.setMaxResults(range[1] - range[0] + 1);        q.setFirstResult(range[0]);        return q.getResultList();    }    public int count() {        javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();        javax.persistence.criteria.Root<T> rt = cq.from(entityClass);        cq.select(getEntityManager().getCriteriaBuilder().count(rt));        javax.persistence.Query q = getEntityManager().createQuery(cq);        return ((Long) q.getSingleResult()).intValue();    }    }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package com.dao;import com.entity.Club;import javax.ejb.Stateless;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import javax.persistence.Query;import java.util.List;/** * * @author song */@Statelesspublic class ClubDao extends  AbstractDao<Club>{    @PersistenceContext(unitName = "uappPU")    private EntityManager em;        public ClubDao(){        super(Club.class);    }    @Override    public EntityManager getEntityManager(){        return em;    }    public Club findById(int id){        Query query = getEntityManager().createNamedQuery("Club.findById", Club.class);        query.setParameter("id", id);        List<Club> resultList = query.getResultList();        if(resultList == null || resultList.isEmpty()){            return new Club(-1);        }else{            return resultList.get(0);        }    }    public List<Club> findByName(String clubName){        Query query = getEntityManager().createNamedQuery("Club.findByName",Club.class);        query.setParameter("clubName","%"+ clubName +"%");        List<Club> resultList = query.getResultList();        if(resultList == null || resultList.isEmpty()){            return null;        }else{            return resultList;        }    }   }

pojo类

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package com.pojo;import com.entity.Club;/** * * @author song */public class ClubPojo {     private int clubId;    private String clubName;    private String clubDescription;    private String picUrl;    private String contactName;    private String contactTel;    public ClubPojo(){            }    public ClubPojo(Club club){        this.clubId  = club.getClubId();        this.clubName = club.getClubName();        this.clubDescription = club.getClubDescription();        this.picUrl = club.getPicUrl();        this.contactName = club.getContactName();        this.contactTel = club.getContactTel();    }    public int getClubId() {        return clubId;    }    public void setClubId(int clubId) {        this.clubId = clubId;    }    public String getClubName() {        return clubName;    }    public void setClubName(String clubName) {        this.clubName = clubName;    }    public String getClubDescription() {        return clubDescription;    }    public void setClubDescription(String clubDescription) {        this.clubDescription = clubDescription;    }    public String getPicUrl() {        return picUrl;    }    public void setPicUrl(String picUrl) {        this.picUrl = picUrl;    }    public String getContactName() {        return contactName;    }    public void setContactName(String contactName) {        this.contactName = contactName;    }    public String getContactTel() {        return contactTel;    }    public void setContactTel(String contactTel) {        this.contactTel = contactTel;    }        }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package com.pojo;import com.entity.Club;/** * * @author song */public class ClubResult {    private String state;    private ClubPojo club;    public String getState() {        return state;    }    public void setState(String state) {        this.state = state;    }    public ClubPojo getClub() {        return club;    }    public void setClub(ClubPojo club) {        this.club = club;    }    }
package com.pojo;/** * * @author chenlitao */public class Result {    private String state;    public String getState() {        return state;    }    public void setState(String state) {        this.state = state;    }}
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package com.pojo;import java.io.Serializable;import java.util.ArrayList;import java.util.List;/** * * @author yjd */public class ResultSet<T> implements Serializable {    /**     * 状态码     */    private String state;    /**     * 泛型集合     */    private List<T> result = new ArrayList<T>();    /**     * 总页数     */    private int totalPage = 0;    /**     * 总条数     */    private int totalCount = 0;    public String getState() {        return state;    }    public void setState(String state) {        this.state = state;    }    public List<T> getResult() {        return result;    }    public void setResult(List<T> result) {        this.result = result;    }    public int getTotalPage() {        return totalPage;    }    public void setTotalPage(int totalPage) {        this.totalPage = totalPage;    }    public int getTotalCount() {        return totalCount;    }    public void setTotalCount(int totalCount) {        this.totalCount = totalCount;    }}

service类

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package com.service;import com.dao.ClubDao;import com.dao.UserClubDao;import com.entity.Club;import com.entity.UserClub;import javax.ejb.LocalBean;import javax.ejb.Stateless;import java.util.ArrayList;import javax.ejb.EJB;import java.util.List;/** * * @author song */@Stateless@LocalBeanpublic class ClubService {    @EJB     private ClubDao clubDao;    @EJB    private UserClubDao userClubDao;      public ClubService() {    }        public Club findById(int clubId){        return clubDao.findById(clubId);    }        public List<Club> findByClubName(String clubName){        List<Club> list = clubDao.findByName(clubName);        if(list == null || list.isEmpty()){            return new ArrayList<Club>();        }else{            return list;        }    }    public  void addClub(Club club){        clubDao.create(club);    }        public void edit(Club club){        clubDao.edit(club);    }    public List<Club> findAll(){        return clubDao.findAll();    }         public List<UserClub> findByClubId(int clubId){        return userClubDao.findByClubId(clubId);    }        public List<UserClub> findByUserName(String userName){        return userClubDao.findByUserName(userName);    }        public boolean delByClubIdAndUserName(int clubId,String userName){        return userClubDao.delByClubIdAndUserName(clubId, userName);    }    public void joinClub(UserClub userClub){        userClubDao.create(userClub);    }    public UserClub findByClubIdAndUserName(int clubId,String userName){        return userClubDao.findByClubIdAndUserName(clubId, userName);    }}

facade类,提供外部调用接口

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package com.facade;import com.entity.Club;import com.entity.UserClub;import com.pojo.ClubPojo;import com.pojo.ClubResult;import com.pojo.Result;import com.pojo.ResultSet;import com.pojo.UserClubPojo;import com.pojo.UserClubResult;import com.service.ClubService;import java.util.ArrayList;import java.util.Date;import javax.ejb.EJB;import javax.ejb.Stateless;import javax.jws.WebMethod;import javax.jws.WebResult;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.WebParam;import java.util.List;/** * * @author song */@Stateless@WebService(serviceName = "club",name = "ClubFacade",targetNamespace =  "http://com.haiersoft.uapp.ws.facade.ClubFacade")@SOAPBinding(style = SOAPBinding.Style.RPC,use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)public class ClubFacade {    @EJB    private ClubService clubService;        /**     * 根据俱乐部Id查询     * @param id     * @return      */    @WebMethod(action = "findByClub0",operationName = "findByClubId")    @WebResult(name = "result")    public ClubResult findByClubId(@WebParam(name = "clubId") int clubId){           ClubResult resultClub = new ClubResult();           try{               Club club = clubService.findById(clubId);               if(club.getClubId() != -1){                      resultClub.setState("200");                      resultClub.setClub(new ClubPojo(club));                }else{                   resultClub.setState("none");               }               return resultClub;           }catch(Exception e){               resultClub.setState("900");               return resultClub;           }    }        /**     * 创建俱乐部信息     * @param clubPojo     * @return      */    @WebMethod(action = "createClub",operationName = "createClub")    @WebResult(name = "result")    public Result createClub(@WebParam(name="clubPojo") ClubPojo clubPojo){         Club club = proverClub(clubPojo);         Result result = new Result();                   try{               clubService.addClub(club);               result.setState("200");               return result;           }catch(Exception e){               System.out.println(e.toString());               result.setState("900");               return result;           }    }        /**     * 根据俱乐部名称查询俱乐部     * @param clubName     * @return      */    @WebMethod(action = "findByClubName",operationName = "findByClubName")    @WebResult(name = "result")    public ResultSet findByClubName(@WebParam(name="clubName") String clubName){        ResultSet<ClubPojo> clubResultSet = new ResultSet<ClubPojo>();        try{            List<Club> listClub = clubService.findByClubName(clubName);            if(listClub.size() <= 1){                  clubResultSet.setState("200");            }else{                clubResultSet.setState("201");            }            List<ClubPojo> listClubPojos = new ArrayList<ClubPojo>();            for(Club club:listClub){                listClubPojos.add(new ClubPojo(club));            }          clubResultSet.setResult(listClubPojos);          clubResultSet.setTotalCount(listClub.size());        }catch(Exception e){            clubResultSet.setState("error");        }        return clubResultSet;    }    /**     * 编辑俱乐部信息     * @param clubPojo     * @return      */    @WebMethod(action = "editClub",operationName = "editClub")    @WebResult(name = "result")    public Result editClub(@WebParam(name="clubPojo") ClubPojo clubPojo){         Club club = proverClub(clubPojo);         club.setClubId(clubPojo.getClubId());         Result result = new Result();                   try{               clubService.edit(club);               result.setState("200");               return result;           }catch(Exception e){               System.out.println(e.toString());               result.setState("900");               return result;           }    }        /**     * 查询所有的俱乐部信息     * @return      */    @WebMethod(action = "findAllClub",operationName = "findAllClub")    @WebResult(name="result")    public ResultSet findAllClub(){        ResultSet<ClubPojo> result = new ResultSet<ClubPojo>();        List<Club> clubList = clubService.findAll();        if(clubList.size() <= 1){            result.setState("200");        }else{            result.setState("201");        }         List<ClubPojo> listClubPojos = new ArrayList<ClubPojo>();         for(Club club:clubList){               listClubPojos.add(new ClubPojo(club));         }        result.setResult(listClubPojos);        return result;    }    /**     * 将俱乐部pojo类转化为实体类     * @param clubPojo     * @return      */    private Club proverClub(ClubPojo clubPojo){        if(clubPojo == null ){            return null;        }        Club club = new Club();        club.setClubName(clubPojo.getClubName());        club.setClubDescription(clubPojo.getClubDescription());        club.setContactName(clubPojo.getContactName());        club.setContactTel(clubPojo.getContactTel());        club.setPicUrl(clubPojo.getPicUrl());        return club;    }           /**     * 加入俱乐部     * @param clubId     * @param userId     * @param userName     * @param mobilePhone     * @return      */    @WebMethod(action = "joinClub",operationName = "joinClub")    @WebResult(name="result")    public Result joinClub(@WebParam(name = "clubId") int clubId,@WebParam(name = "userId")String userId,@WebParam(name = "userName")String userName ,@WebParam(name = "mobilePhone")String mobilePhone){        Result result = new Result();              UserClub userClub = new UserClub();                userClub.setClub(new Club(clubId));        userClub.setUserId(userId);        userClub.setUserName(userName);        userClub.setMobilePhone(mobilePhone);        Date time = new Date();        userClub.setJoinTime( time);        try{            clubService.joinClub(userClub);            result.setState("200");        }catch(Exception e){            result.setState("error");            System.out.println(e);        }        return result;    }    /**     * 根据俱乐部Id查询俱乐部的报名人数     * @param clubId     * @return      */    @WebMethod(action = "findUserByClubId",operationName = "findUserByClubId")    @WebResult(name = "result")    public ResultSet findUserByClubId(@WebParam(name  ="clubId") int clubId){        ResultSet<UserClubPojo> result = new  ResultSet<UserClubPojo>();        try{            List<UserClub> userClubList = clubService.findByClubId(clubId);            if(userClubList.size() <= 1){                result.setState("200");            }else{                result.setState("201");            }            List<UserClubPojo> listClubPojos = new ArrayList<UserClubPojo>();            for(UserClub userClub:userClubList){               listClubPojos.add(new UserClubPojo(userClub));            }            result.setResult(listClubPojos);            result.setTotalCount(userClubList.size());        }catch(Exception e){            result.setState("error");        }        return result;    }    /**     * 根据用户名查询报名俱乐部     * @param userName     * @return      */    @WebMethod(action = "findByUserName",operationName = "findByUserName")    @WebResult(name = "result")    public ResultSet findByUserName(@WebParam(name="userName")String userName){        ResultSet<UserClubPojo> result = new  ResultSet<UserClubPojo>();        try{           List<UserClub> userClubList = clubService.findByUserName(userName);            if(userClubList.size() <= 1){                result.setState("200");            }else{                result.setState("201");            }            List<UserClubPojo> listClubPojos = new ArrayList<UserClubPojo>();            for(UserClub userClub:userClubList){               listClubPojos.add(new UserClubPojo(userClub));            }          result.setResult(listClubPojos);          result.setTotalCount(userClubList.size());        }catch(Exception e){            result.setState("error");        }        return result;    }    /**     * 根据俱乐部Id和用户名查询是否有报名信息     * @param clubId     * @param userName     * @return      */    @WebMethod(action = "findByClubIdAndUserName",operationName = "findByClubIdAndUserName")    @WebResult(name = "result")    public UserClubResult findByClubIdAndUserName(@WebParam(name = "clubId")int clubId,@WebParam(name = "userName")String userName){        UserClubResult result = new  UserClubResult();        try{             UserClub userClub = clubService.findByClubIdAndUserName(clubId, userName);             if(userClub != null){                result.setState("200");                result.setUserClub(new UserClubPojo(userClub));             }else{                 result.setState("none");             }                  }catch(Exception e){            result.setState("error");        }        return result;    }    /**     * 根据Id和用户名删除报名信息     * @param clubId     * @param userName     * @return      */    @WebMethod(action = "delByClubIdAndUserName",operationName = "delByClubIdAndUserName")    @WebResult(name = "result")    public Result delByClubIdAndUserName(@WebParam(name = "clubId")int clubId,@WebParam(name = "userName")String userName){        Result result = new Result();        try{            boolean flag = clubService.delByClubIdAndUserName(clubId, userName);            if(flag){                result.setState("200");            }else{                result.setState("none");            }        }catch(Exception e){            result.setState("error");        }        return result;    }}

一个简单的WebService就完成了

 

WebService netbeans glassfish