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

📄 ingestservlet.java

📁 Sun公司Dream项目
💻 JAVA
字号:
/*
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the "License").  You may not use this file except
 * in compliance with the License.
 *
 * You can obtain a copy of the license at
 * http://www.opensource.org/licenses/cddl1.php
 * See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL
 * HEADER in each file and include the License file at
 * http://www.opensource.org/licenses/cddl1.php.  If 
 * applicable, add the following below this CDDL HEADER, 
 * with the fields enclosed by brackets "[]" replaced 
 * with your own identifying information: 
 * Portions Copyright [yyyy]
 * [name of copyright owner]
 */ 

/*
 * $(@)IngestServlet.java $Revision: 1.1.1.1 $ $Date: 2006/03/15 13:12:10 $
 * 
 * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
 */
package com.sun.sjc.idtv.vod.server.http;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.sun.sjc.idtv.vod.shared.data.*;
import com.sun.sjc.idtv.vod.server.mediaprovisioning.*;
import java.util.*;
import javax.naming.*;
import java.rmi.*;
import javax.rmi.PortableRemoteObject;

// import org.xml.sax.*;
// import org.xml.sax.helpers.DefaultHandler;

import javax.xml.soap.*;

public class IngestServlet extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
    try {
        super.init(config);
        
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        doPost(request, response);
    }

    public void doPost( HttpServletRequest req, HttpServletResponse res ) throws
    ServletException, IOException {
        try {
            
            MimeHeaders headers = getHeaders(req);

            InputStream is = req.getInputStream();

            MessageFactory mesgFac = MessageFactory.newInstance();
            SOAPMessage soapMesg = mesgFac.createMessage(headers, is);

            Movie movie = parseSOAPMesg(soapMesg);
            if(movie != null) {
                System.out.println("IngestServlet.doPost(): movie available"); 
                insertMovie(movie);
            } else {
                System.out.println("IngestServlet.doPost(): empty movie");
                // insert code to forward to error page
            }
            
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

    static MimeHeaders getHeaders(HttpServletRequest req) {
    
        Enumeration enum1 = req.getHeaderNames();
        MimeHeaders headers = new MimeHeaders();

        while (enum1.hasMoreElements()) {
            String headerName = (String)enum1.nextElement();
            String headerValue = req.getHeader(headerName);

            StringTokenizer values = new
            StringTokenizer(headerValue, ",");
            while (values.hasMoreTokens())
                headers.addHeader(headerName,values.nextToken().trim());
        }

        return headers;
    }
    

    // push movie object to the content ingestion bean.
    
    public void insertMovie(Movie movie) {
        try {
        ContentIngest contentIngest;
        ContentIngestHome contentIngestHome;
        Properties prop = new Properties();
        prop.put("java.naming.factory.initial", "com.sun.jndi.cosnaming.CNCtxFactory");
        prop.put("java.naming.provider.url", "iiop://vod-vas:3700");
        
        InitialContext initContext = new InitialContext(prop);
        String JNDIName = "ContentIngest";
        Object object = initContext.lookup(JNDIName);

        contentIngestHome = (ContentIngestHome)PortableRemoteObject.narrow(object,ContentIngestHome.class);
        contentIngest = contentIngestHome.create();
        contentIngest.store(movie);
        }
        catch(NamingException ne) {
            ne.printStackTrace();
        }
        catch(RemoteException re) {
            re.printStackTrace();
        }
        catch(javax.ejb.CreateException ce) {
            ce.printStackTrace();
        }
        catch(java.sql.SQLException sqle) {
            sqle.printStackTrace();
        }
    }

    public Movie parseSOAPMesg(SOAPMessage soapMesg) {
        
        Movie movie = new Movie();
        try {
            SOAPBody soapBody = soapMesg.getSOAPPart().getEnvelope().getBody();
            Iterator iteratorAsset = soapBody.getChildElements();
            SOAPBodyElement soapBodyElementAsset = (SOAPBodyElement)iteratorAsset.next();
            if(soapBodyElementAsset.getElementName().getLocalName().equals("Asset")) {
                Iterator iteratorInfo = soapBodyElementAsset.getChildElements();
                SOAPElement soapElement = null;
                javax.xml.soap.Name name = null;
                String temp = null;
                while(iteratorInfo.hasNext()) {
                    soapElement = (SOAPElement)iteratorInfo.next();
                    name = soapElement.getElementName();
                    temp = name.getLocalName();
                    if(temp.equals("ExternalId")) {
                        movie.externalid = soapElement.getValue();
                    } else if(temp.equals("FullTitle")) {
                        movie.fulltitle = temp;
                    } else if(temp.equals("OriginalTitle")) {
                        movie.origtitle = temp;
                    } else if(temp.equals("ShortTitle")) {
                        movie.shorttitle = temp;
                    } else if(temp.equals("ShortDescription")) {
                        movie.shortdescr = temp;
                    } else if(temp.equals("LongDescription")) {
                        movie.longdescr = temp;
                    } else if(temp.equals("Version")) {
                        movie.version = Integer.parseInt(temp);
                    } else if(temp.equals("Genre")) {
                        movie.genreid = Integer.parseInt(temp);
                    } else if(temp.equals("ProductionCompany")) {
                        movie.prodcompany = temp;
                    } else if(temp.equals("ProductionDate")) {
                        movie.proddate = new Date(Long.parseLong(temp));
                    } else if(temp.equals("ReleaseDate")) {
                        movie.releasedate = temp;
                    } else if(temp.equals("Country")) {
                        movie.country = temp;
                    } else if(temp.equals("ScreenFormat")) {
                        movie.screenformat = Integer.parseInt(temp);
                    } else if(temp.equals("Showing")) {
                        movie.showing = temp;
                    } else if(temp.equals("BoxOfficeRating")) {
                        movie.boxofficeratingid = 0;
                        movie.boxofficerating = temp;
                    } else if(temp.equals("ParentalRating")) {
                        movie.parentratingid = 0;
                        movie.parentrating = temp;
                    } else if(temp.equals("Duration")) {
                        movie.duration = Integer.parseInt(temp);                        
                    } else if(temp.equals("Color")) {
                    } else if(temp.equals("Stereo")) {
                    } else if(temp.equals("Surround")) {
                    } else if(temp.equals("Dolby")) {
                    } else if(temp.equals("DVBContent")) {
                        movie.dvbcontent = temp;
                    } else if(temp.equals("StartDate")) {
                        movie.startdate = new Date(Long.parseLong(temp));
                    } else if(temp.equals("EndDate")) {
                        movie.enddate = new Date(Long.parseLong(temp));
                    } else if(temp.equals("StandardPrice")) {
                        movie.stdprice = Float.parseFloat(temp);
                    } else if(temp.equals("MinimumPrice")) {
                        movie.minprice = Float.parseFloat(temp);
                    } else if(temp.equals("MovieURL")) {
                        movie.movieurl = temp;
                    } else if(temp.equals("PosterURL")) {
                        movie.posterurl = temp;
                    } else if(temp.equals("Actors")) {
                    } else if(temp.equals("Producers")) {
                    } else if(temp.equals("Directors")) {
                    } else if(temp.equals("Composers")) {
                    } else if(temp.equals("Snapshots")) {
                    } else if(temp.equals("Trailers")) {
                    } else if(temp.equals("EncodingType")) {
                        movie.enctype = temp;
                    } else if(temp.equals("SourceFile")) {
                        movie.sourcefile = temp;
                    } else {
                        System.out.println("parseSOAPMesg(): Extraneous '"+temp+"'");    
                        // Do nothing
                    }
                }
            }
            System.out.println("parseSOAPMesg(): completed successfully");
        }
        catch(Exception e) {
            e.printStackTrace();
            movie = null;
        }
        finally {
            return movie;
        }
    }
} 

⌨️ 快捷键说明

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