在Java Web Start中获取服务器地址

4

我该如何在我的JavaWS应用程序中获取从哪个服务器下载的IP地址?

谢谢!


这不就是你运行它的客户端IP吗?我不确定你所说的“下载位置”是什么意思。 - JavaKungFu
@JavaKungFu 服务器端,而不是客户端。(除非有特权,否则您不应该能够从客户端获取客户端IP地址。) - Tom Hawtin - tackline
2个回答

2

有关 BasicService 的演示和示例代码,请访问我的页面 http://pscode.org/jws/api.html#bs。 - Andrew Thompson
谢谢,但在我的情况下它不起作用。ServiceManager.lookup("javax.jnlp.BasicService") 抛出异常。我使用Spring和Spring Rich Client。 - StylishJetPack
不知道Spring在做什么,但我找到了这个相关页面:http://spring-rich-c.sourceforge.net/1.1.0/apidocs/org/springframework/richclient/jnlp/JnlpPropertyPlaceholderConfigurer.html - Tom Hawtin - tackline
我尝试从IDEA启动我的应用程序,并将其作为桌面应用程序运行。这就是为什么ServiceManager.lookup("javax.jnlp.BasicService")没有起作用的原因。JnlpPropertyPlaceholderConfigurer帮了我一个大忙。感谢@Tom Hawtin! - StylishJetPack

0

您需要获取 jnlp.jar 并将其添加到您的应用程序中。我不得不在 JDK 示例和演示中找到它,这些是与 JDK 分开分发的。我使用 this samples and demos question 找到了它。我能够通过类似于 http://download.oracle.com/otn-pub/java/jdk/8u11-b12-demos/jdk-8u11-windows-i586-demos.zip 的 URL 获取它。

有了 jnlp.jar,使用此代码获取应用程序代码库的 URL,您可以使用它来查找服务器主机名。

import javax.jnlp.*;

BasicService bs = (BasicService)ServiceManager.lookup("javax.jnlp.BasicService");
URL codebase = bs.getCodeBase();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接