⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 midpservice.java

📁 本例集中讲解了一下J2ME和J2EE 之间是怎样结合的并通过例子来解释
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		    serverError(rev);		} 	    }	}	    	    }    // Parameters: username, password    void loginUser(DataOutputStream out, StringTokenizer params)         throws MIDPException {        try {            String username = params.nextToken();            String password = params.nextToken();            Customer c = findCustomerEJB(username);            CustomerInformation ci = c.getInformation();            if (!password.equals(ci.getPassword())) {                throw new MIDPException(PASSWORD_INCORRECT_ERROR);            }            customerInfo = ci;            out.writeUTF(sessionURL);        } catch (FinderException fe) {            throw new MIDPException(USER_NOT_FOUND_ERROR);        } catch (Exception e) {            serverError(e);        }    }    // Parameters: <none>    void displayMovies(DataOutputStream out, StringTokenizer params)         throws MIDPException {        try {            List movies = movieInfo.getMovies(customerInfo.getZipCode());            out.writeInt(movies.size());            for (int i = 0; i < movies.size(); i++) {                Movie movie = (Movie) movies.get(i);                out.writeInt(movie.getID());                out.writeUTF(movie.getTitle());                out.writeUTF(movie.getRating());                out.writeUTF(movie.getPosterURL());            }        } catch (Exception e) {            serverError(e);        }    }        // Parameters: movieID    void displayLocations(DataOutputStream out, StringTokenizer params)         throws MIDPException {        try {            int movieID = Integer.parseInt(params.nextToken());            List locations =                 movieInfo.getLocations(customerInfo.getZipCode(), movieID);            out.writeInt(locations.size());            for (int i = 0; i < locations.size(); i++) {                Location location = (Location) locations.get(i);                out.writeInt(location.getID());                out.writeUTF(location.getLocation());            }        } catch (Exception e) {            serverError(e);        }    }    // Parameters: movieID, locationID    void displayShowtimes(DataOutputStream out, StringTokenizer params)         throws MIDPException {        try {            int movieID = Integer.parseInt(params.nextToken());            int locationID = Integer.parseInt(params.nextToken());            List showtimes = movieInfo.getShowtimes(movieID, locationID);            out.writeInt(showtimes.size());            for (int i = 0; i < showtimes.size(); i++) {                Showtime showtime = (Showtime) showtimes.get(i);                out.writeInt(showtime.getID());                out.writeUTF(showtime.getShowtime());            }        } catch (Exception e) {            serverError(e);        }    }    // Parameters: showID    void displaySeatingPlan(DataOutputStream out, StringTokenizer params)         throws MIDPException {        try {            int showID = Integer.parseInt(params.nextToken());            if (ticketSales != null) {                ticketSales.cancelSeats();            }            ticketSales                 = createTicketSalesEJB(customerInfo.getUsername(), showID);            SeatingPlan sp = ticketSales.getSeatingPlan();            out.write((byte)sp.getRowCount());            out.write((byte)sp.getRowLength());            byte[] seats = sp.getSeatData();            out.write(seats);        } catch (Exception e) {            serverError(e);        }    }    // Parameters: showID, row1, seat1, ..., rowN, seatN    void reserveSeats(DataOutputStream out, StringTokenizer params)        throws MIDPException {        try {            Set seats = new HashSet();            while (params.hasMoreTokens()) {                seats.add(new Seat(Integer.parseInt(params.nextToken()),                                    Integer.parseInt(params.nextToken())));            }            ticketSales.reserveSeats(seats);        } catch (UnavailableSeatsException use) {            throw new MIDPException(UNAVAILABLE_SEATS_ERROR);        } catch (Exception e) {            serverError(e);        }	    }    // Parameters: creditCard    void confirmSeats(DataOutputStream out, StringTokenizer params)         throws MIDPException {	int creditCard = Integer.parseInt(params.nextToken());        try {            ticketSales.confirmSeats();        } catch (Exception e) {            serverError(e);        } finally {	    if (ticketSales != null) {		try {		    ticketSales.remove();		    ticketSales = null;		} catch (RemoteException rem) {		    serverError(rem);		} catch (RemoveException rev) {		    serverError(rev);		}	    }	}    }    // Parameters: <none>    void cancelSeats(DataOutputStream out, StringTokenizer params)         throws MIDPException {        try {             ticketSales.cancelSeats();        } catch (Exception e) {            serverError(e);        } finally {	    if (ticketSales != null) {		try {		    ticketSales.remove();		    ticketSales = null;		} catch (RemoteException rem) {		    serverError(rem);		} catch (RemoveException rev) {		    serverError(rev);		}	    }	}    }    // EJB helper methods    /*     * Helper method to instantiate a MovieInfoEJB.     */    MovieInfo createMovieInfoEJB()         throws CreateException, NamingException, RemoteException {        MovieInfoHome home =             (MovieInfoHome) PortableRemoteObject            .narrow(new InitialContext()                .lookup("java:comp/env/ejb/MovieInfo"),                     MovieInfoHome.class);        return (MovieInfo) home.create();    }    /*     * Helper method to instantiate a LocaleInfoEJB.     */    LocaleInfo createLocaleInfoEJB()         throws CreateException, NamingException, RemoteException {        LocaleInfoHome home =             (LocaleInfoHome) PortableRemoteObject            .narrow(new InitialContext()                .lookup("java:comp/env/ejb/LocaleInfo"),                     LocaleInfoHome.class);        return (LocaleInfo) home.create();    }    /*     * Helper method to find TicketSales for the given show.     */    TicketSales createTicketSalesEJB(String customerID, int showID)         throws CreateException, NamingException, RemoteException {        TicketSalesHome home =             (TicketSalesHome) PortableRemoteObject            .narrow(new InitialContext()                .lookup("java:comp/env/ejb/TicketSales"),                     TicketSalesHome.class);        return (TicketSales) home.create(customerID, showID);    }    /*     * Helper method to create a new Customer.     */    Customer createCustomerEJB(String username, String password,                                String zipCode, String creditCard)        throws CreateException, DuplicateKeyException,                NamingException, RemoteException {        CustomerHome home =             (CustomerHome) PortableRemoteObject            .narrow(new InitialContext()                .lookup("java:comp/env/ejb/Customer"),                     CustomerHome.class);        return (Customer) home.create(username, password,                                       zipCode, creditCard);    }    /*     * Helper method to find a Customer by his or her username.     */    Customer findCustomerEJB(String username)         throws FinderException, NamingException, RemoteException {        CustomerHome home =             (CustomerHome) PortableRemoteObject            .narrow(new InitialContext()                .lookup("java:comp/env/ejb/Customer"),                     CustomerHome.class);        return (Customer) home.findByPrimaryKey(username);    }    /*     * Some unexpected server error has occurred.     */    private void serverError(Exception e) throws MIDPException {        System.err.println("[TRACE]: Server error: " + e);        e.printStackTrace();        throw new MIDPException(SERVER_ERROR);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -