?? ingestservlet.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;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -