• 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="update"/>
                <property name="hibernate.show_sql" value="true"/>
                <property name="hibernate.format_sql" value="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
     */
    @Stateless
    public 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
    @LocalBean
    public 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就完成了

  • 相关阅读:
    C++覆盖、重载、多态区别
    C++的模板与类属类
    虚函数表和虚基类表
    常用的设计模式
    计算机内存中的对齐和C++ 类的存储空间大小
    C++的多态
    前端框架你究竟选什么
    [zt]程序员的本质
    javascript
    Web开发人员应有的15本免费电子书
  • 原文地址:https://www.cnblogs.com/songyao/p/4135044.html
Copyright © 2020-2023  润新知