Servlet 3.0 には優れた機能があります。META-INF/resources フォルダーを使用して、JAR 内の静的リソースにアクセスできます。したがって、JAR 内に JavaScript がある場合は、 http://myurl.com/myapp/myjavascript.jsを使用してアクセスできます。それは素晴らしいことです。しかし...そのファイルをjarから取得して操作したり、何かをしたりする方法は?
質問する
157 次
1 に答える
1
ServletContext#getResourceAsStream()
通常の方法で取得するだけInputStream
です:
InputStream input = getServletContext().getResourceAsStream("/META-INF/javascript.js");
それを操作する意図については、忘れてください。このリソースは書き込み可能ではありません。基本的に、JAR 全体を抽出し、エントリを操作し、JAR を再パックし、カスタム クラスローダーを提供してそれをリロードし、コンテナにそれを使用するように指示する必要があります。これに成功したとしても、サーバーを再起動しただけでも、WAR を再デプロイするか、特定の構成ですべての変更が失われます。これは、これらの変更が元の WAR に含まれていないという非常に単純な理由によるものです。
具体的な機能要件の解決に関して、間違った道を進んでいます。一歩下がって、これが正しい解決策であると誤って考えていた特定の具体的な機能要件を解決する方法について、新たな質問をすることをお勧めします。
于 2013-08-03T03:03:55.643 に答える