0

で xsd ファイルを開きたいweb-inf/xsd/output.xsd これは私がやろうとしていることです

URL url = portletContext.getResource("WEB-INF/xsd/output.xsd");

getResource は URL を返しますが、私の場合は取得NullPointerExceptionしており、これを newFile に指定してファイルを開く必要があります。

File newFile = new File("");

これを機能させる方法がわかりません。

アップデート

私の英語で我慢してください。私はこれを機能させました。質問があります*.xsl。PDF の生成に使用される別のファイルがあります。このファイルを開いた後は削除できません。ファイルを開いたままにしておくと、JVM にどのような影響がありますか。つまり、100 人を超えるユーザーが PDF を作成しようとしています。つまり、*.xslファイルは 100 回開かれます。将来、アプリケーションはユーザーによって頻繁に使用されます。 、GC は開いているすべてのファイル記述子を自動的にクリアしますか?

4

1 に答える 1

1

javax.portlet.PortletContextの API doc から、次のように説明されています。

... パスはスラッシュ (/) で始まる必要があり、現在のコンテキスト ルート (通常は Web アプリケーションの WebContent または Web ディレクトリ) に対する相対パスとして解釈されます。この方法により、ポートレット コンテナーはリソースをポートレットで使用できるようになります。あらゆるソースから。リソースは、ローカルまたはリモートのファイル システム、データベース、または .war ファイルに配置できます。

于 2012-12-03T16:36:51.507 に答える