📄 uploadservlet.java
字号:
package com.yuyanshan.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import java.util.zip.ZipInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
//import org.springframework.context.ApplicationContext;
//import org.springframework.web.context.support.WebApplicationContextUtils;
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType("text/html");
response.getWriter().println(handleRequest(request));
}
public void printInput(HttpServletRequest request) throws IOException {
InputStream inputStream = request.getInputStream();
StringBuffer buffer = new StringBuffer();
int read;
while ((read = inputStream.read()) != -1) {
buffer.append((char)read);
}
log.debug(buffer.toString());
}
private String handleRequest(HttpServletRequest request) {
if (!FileUpload.isMultipartContent(request)) {
log.debug("Not a multipart request");
return "Not a multipart request";
}
try {
DiskFileUpload fileUpload = new DiskFileUpload();
List list = fileUpload.parseRequest(request);
Iterator iterator = list.iterator();
if (!iterator.hasNext()) {
log.debug("No process file in the request");
return "No process file in the request";
}
FileItem fileItem = (FileItem)iterator.next();
if (fileItem.getContentType().indexOf("application/x-zip-compressed") == -1) {
log.debug("Not a process archive");
return "Not a process archive";
}
return doDeployment(fileItem,request);
} catch (FileUploadException e) {
e.printStackTrace();
return "FileUploadException";
}
}
private String doDeployment(FileItem fileItem,HttpServletRequest request) {
JbpmConfiguration jbpmConfiguration = JbpmConfiguration
.getInstance();
// ApplicationContext ctx=WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
// JbpmConfiguration jbpmConfiguration=(JbpmConfiguration) ctx.getBean("jbpmConfiguration");
try {
System.out.println("**************** the file anme:" + fileItem.getFieldName());
ZipInputStream zipInputStream = new ZipInputStream(fileItem.getInputStream());
JbpmContext jbpmContext = jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null)
{
jbpmContext=jbpmConfiguration.createJbpmContext();
}
ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
log.debug("Created a processdefinition : " + processDefinition.getName() );
jbpmContext.deployProcessDefinition(processDefinition);
zipInputStream.close();
jbpmContext.close();
return "Deployed archive " + processDefinition.getName() + " successfully";
} catch (IOException e) {
return "IOException";
}
}
private static Log log = LogFactory.getLog(UploadServlet.class);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -