2011-09-01 37 views
0

当我试图为我的问题找到解决方案时,我陷入了麻烦。 我有一个xml架构,我从互联网上下载并使用它创建SchemaFactory。 的代码是这样的:从战争部署中序列化对象

SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 

的问题是,它需要时间的下降量加载它,所以我想这个序列化对象,然后反序列化。 我没有成功甚至在战争中创建一个文件(阅读文件,我发现该怎么做)。 如果有人能帮助我,我会很高兴。 谢谢, Pavel

+0

将序列化对象(数据)写入* .war(应用程序)是一个坏主意。它更好地使用webapp的工作区域。 –

回答

0

您不能在运行的战争中动态地存储新文件。不过,您可以使用外部目录将序列化的对象存储在文件中,或将其存储在数据库中。

+0

我的意图是使用webapp的工作区。 但是如何动态获取路径?我不知道它将在哪里存储和解包。 – Pavel

+0

一个webapp不一定有一个工作区。应用程序服务器类加载器可以将所有内容都打包到war文件中。尽管如此,容器必须为您提供一个临时目录,您可以在其中存储所需内容。使用servletContext.getAttribute(ServletContext.TEMPDIR)获取它 –

+0

@Pavel:你不能将SchemaFactory缓存在内存中 - “servletContext.setAttribute(...);'? – home