既存のコードに何かを追加しようとしていますので、プロジェクトの構造を引き続き使用します。 costructMarshallerが、私はこのクラスで持っている方法であるjava zipoutputstream zip 2 xmlファイルに挿入する方法
String bakecaPath = configurationManager.getProviderParam(CommonConstants.THIRD_PARTY_PROVIDER_NAME, CommonConstants.BAKECA_FEED_XML_PATH);
File bakecaOutputFile = new File(bakecaPath);
bakecaStream = new ZipOutputStream(new FileOutputStream(bakecaOutputFile));
innerFileName = bakecaOutputFile.getName().replace(".zip", ".xml");
ze = new ZipEntry(innerFileName);
bakecaStream.putNextEntry(ze);
bakecaWriter = xmlOutputFactory.createXMLStreamWriter(bakecaStream, UTF_8);
Marshaller bakecaMarshaller = constructMarshaller(BakecaAd.class);
bakecaWriter.writeStartDocument(UTF_8,"1.0");
bakecaWriter.writeStartElement(getRootElementName(Bakeca.class));
bakecaWriter.writeEndElement();
bakecaWriter.writeEndDocument();
bakecaStream.closeEntry();
closeWriter(bakecaWriter);
:コードをファイル出力zipファイルを作成するには
には、以下の流れを持っています。
今、私は私がtryied
(名前は、セキュリティ上の理由から、このようなものです)2つのファイルの.xml(すなわちnewFeed.xmlとnewFeedAgency.xml)を作成し、一意のファイルfcowrnfo.zipに入れたいです同じことを2回書くだけですが、サーブレットは1つだけですが、明らかにファイル.zipに書き込む必要があるのは2番目のファイルだけです。ファイルweb.xmlで
:
<servlet>
<servlet-name>BakecaServlet</servlet-name>
<servlet-class>it.antlia.wikire.servlet.BakecaServlet</servlet-class>
<async-supported>true</async-supported>
<servlet-mapping>
<servlet-name>BakecaServlet</servlet-name>
<url-pattern>/bakeca_feed.zip</url-pattern>
私は2 filewritersをした場合、どのように私はzipStreamにそれらを添付することができますか?
また、この問題を解決するにはどうすればよいですか?
サーブレットの呼び出し時に2つのエントリを持つzipファイルを作成しますか?最初の 'bakecaStream.closeEntry();を閉じた直後に2番目のエントリを作成しない理由 – tima
はい、これがコンセプトです。私は誰かが "baseURL"というURLを数字で区切って/ servletが2つのファイル.xmlを含むzipファイルのダウンロードを開始したいとき – user2216131