关于Jackrabbit的ObjectPersistenceManager的问题

MBlue 2007-07-06 04:57:16
我自己写了一个小程序,PersistenceManager配置的是org.apache.jackrabbit.core.state.obj.ObjectPersistenceManager

repository和workspace都是文件系统,我用的windows
我添加了一个node并成功上传了一个文件,然后尝试获取该文件,也成功了。

但是问题是我尝试在我的文件系统中招我所添加的节点和上传的文件,竟然找不到。我想知道ObjectPersistenceManager把他们存到那里去了。
谢谢。以下是代码:
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
Session session=null;
FileOutputStream fo=null;
InputStream stream = null;
if (isMultipart){
try {

Repository repository = new TransientRepository();
session = repository.login(new SimpleCredentials("user",
"password".toCharArray()));
Workspace ws = session.getWorkspace();
System.out.println(ws.getName());
FileItemFactory factory = new DiskFileItemFactory();
// DiskFileUpload fu = new DiskFileUpload();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// ServletFileUpload upload = new ServletFileUpload();

// upload.setHeaderEncoding("utf-8");

// Parse the request
List items = upload.parseRequest(request);

Iterator iter = items.iterator();

while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();

if (!item.isFormField()) {
Node root = session.getRootNode();
System.out.println(root.getName());
Node node =null;
if (!root.hasNode("UploadedFile")) {
node = root.addNode("UploadedFile");
} else {
node = root.getNode("UploadedFile");
}
NodeIterator ni = root.getNodes();
while(ni.hasNext()){
System.out.println( ((Node)ni.next()).getName() );
}
// Property pt = node.getProperty(item.getName().substring(item.getName().lastIndexOf("\\")+1));
// fo = new FileOutputStream("D:\\test.txt");
// stream=pt.getStream();
// int bytesRead = 0;
// byte[] buffer = new byte[8192];
// while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {
// fo.write(buffer, 0, bytesRead);
// }
node.setProperty(item.getName().substring(item.getName().lastIndexOf("\\")+1), item.getInputStream());
// node.save();
session.save();
}
}
} catch(Exception ex){
ex.printStackTrace();
} finally {
session.logout();
// fo.flush();
// fo.close();
// stream.close();
}
...全文
161 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
MBlue 2007-07-09
  • 打赏
  • 举报
回复
没有人用过吗?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧