本文整理汇总了Java中org.pentaho.di.www.AddExportServlet类的典型用法代码示例。如果您正苦于以下问题:Java AddExportServlet类的具体用法?Java AddExportServlet怎么用?Java AddExportServlet使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
AddExportServlet类属于org.pentaho.di.www包,在下文中一共展示了AddExportServlet类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: sendExport
import org.pentaho.di.www.AddExportServlet; //导入依赖的package包/类
/**
* Send an exported archive over to this slave server
* @param filename The archive to send
* @param type The type of file to add to the slave server (AddExportServlet.TYPE_*)
* @param load The filename to load in the archive (the .kjb or .ktr)
* @return the XML of the web result
* @throws Exception in case something goes awry
*/
public String sendExport(String filename, String type, String load) throws Exception
{
String serviceUrl=AddExportServlet.CONTEXT_PATH;
if (type!=null && load!=null) {
serviceUrl = serviceUrl+= "/?"+AddExportServlet.PARAMETER_TYPE+"="+type+"&"+AddExportServlet.PARAMETER_LOAD+"="+URLEncoder.encode(load, "UTF-8");
}
String urlString = constructUrl(serviceUrl);
log.logDebug(toString(), Messages.getString("SlaveServer.DEBUG_ConnectingTo", urlString)); //$NON-NLS-1$
PutMethod putMethod = new PutMethod(urlString);
// Request content will be retrieved directly from the input stream
//
FileObject fileObject = KettleVFS.getFileObject(filename);
RequestEntity entity = new InputStreamRequestEntity(KettleVFS.getInputStream(fileObject));
putMethod.setRequestEntity(entity);
putMethod.setDoAuthentication(true);
putMethod.addRequestHeader(new Header("Content-Type", "binary/zip"));
// Get HTTP client
//
HttpClient client = new HttpClient();
addCredentials(client);
// Execute request
//
try
{
int result = client.executeMethod(putMethod);
// The status code
log.logDebug(toString(), Messages.getString("SlaveServer.DEBUG_ResponseStatus", Integer.toString(result))); //$NON-NLS-1$
// the response
InputStream inputStream = new BufferedInputStream(putMethod.getResponseBodyAsStream(), 1000);
StringBuffer bodyBuffer = new StringBuffer();
int c;
while ( (c=inputStream.read())!=-1) bodyBuffer.append((char)c);
inputStream.close();
String bodyTmp = bodyBuffer.toString();
switch(result)
{
case 401: // Security problem: authentication required
// Non-internationalized message
String message = "Authentication failed"+Const.DOSCR+Const.DOSCR+bodyTmp; //$NON-NLS-1$
WebResult webResult = new WebResult(WebResult.STRING_ERROR, message);
bodyBuffer.setLength(0);
bodyBuffer.append(webResult.getXML());
break;
}
String body = bodyBuffer.toString();
// String body = post.getResponseBodyAsString();
log.logDebug(toString(), Messages.getString("SlaveServer.DEBUG_ResponseBody",body)); //$NON-NLS-1$
return body;
}
finally
{
// Release current connection to the connection pool once you are done
putMethod.releaseConnection();
log.logDetailed(toString(), Messages.getString("SlaveServer.DETAILED_SentExportToService", AddExportServlet.CONTEXT_PATH, environmentSubstitute(hostname))); //$NON-NLS-1$
}
}