通常のHTTPサーバー(Apache Web Serverなど)ではなく、Java Webコンテナ(Tomcatなど)でJNLPファイルをホストする場合、Sun https://stackoverflow.com/a/7593088/418439が提供するJNLPサーブレットを使用できます。興味深い変数は、$$ codebase、$$ site(下記のコードを参照)です。たとえば、JNLPファイル内$$サイトがホストしているマシンのIPアドレスとポートに置き換えられます(例えばhttp://10.10.10.1:8080
)
private String specializeJnlpTemplate(HttpServletRequest request, String respath, String jnlpTemplate) {
String urlprefix = getUrlPrefix(request);
int idx = respath.lastIndexOf('/'); //
String name = respath.substring(idx + 1); // Exclude/
String codebase = respath.substring(0, idx + 1); // Include/
jnlpTemplate = substitute(jnlpTemplate, "$$name", name);
// fix for 5039951: Add $$hostname macro
jnlpTemplate = substitute(jnlpTemplate, "$$hostname",
request.getServerName());
jnlpTemplate = substitute(jnlpTemplate, "$$codebase", urlprefix + request.getContextPath() + codebase);
jnlpTemplate = substitute(jnlpTemplate, "$$context", urlprefix + request.getContextPath());
// fix for 6256326: add $$site macro to sample jnlp servlet
jnlpTemplate = substitute(jnlpTemplate, "$$site", urlprefix);
return jnlpTemplate;
}
ありがとうございました。申し訳ありませんが、私が投稿した質問は非常に愚かであることに気づきました。私がしなければならなかったのは、コードベースを完全に削除して動作させることでした。私は、JAVAのドキュメントが全面にあり、それは時々私は愚かな質問をすることがわかります。 – jadrijan
心配はいりません。私たちは皆、物事を違った形で見ています。明らかなことがある人は、他人に混乱しています。いつでも私に起こります。 – jefflunt