在web应用下:
可以通过servlet来实现。
新建一个类继承javax.servlet.http.HttpServlet,然后将加载数据的代码放到init方法就可以了。具体代码如下:
public class StaticClass extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet
{
/**
*
*/
private static final long serialVersionUID = 1L;
private static String title =" StaticClass ";
public void init(ServletConfig config)
{
System.out.println("public void init(ServletConfig config) ###############################");
setdata();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
}
public void setdata()
{
try
{
Properties props = new Properties();
props.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "192.168.1.17:1099");
props.setProperty("java.naming.factory.url.pkgs",
"org.jboss.naming:org.jnp.interfaces");
InitialContext remotectx = new InitialContext(props);
DeptTempMgr deptTempMgr = (DeptTempMgr)remotectx.lookup("Business/DeptTempMgrBean/remote");
InetAddress inetAddress= deptTempMgr.getLocalIp();
String ipName = inetAddress.getHostAddress();
String homeName = inetAddress.getHostName();
// System.out.println("远程调用的主机内网ip是:"+ipName);
System.out.println("远程调用的主机名是:"+homeName);
}
catch (Exception e)
{
System.out.println(e);
}
}
}
然后在web.xml配置一下:
<servlet>
<servlet-name>staticclass</servlet-name>
<servlet-class>
action.util.StaticClass
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>staticclass</servlet-name>
<url-pattern>/servlet/staticclass.jsp</url-pattern>
</servlet-mapping>
其中load-on-startup的含义是:容器启动时加载这个servlet的顺序,正常的取值范围是:负数,0-5,如果是负数或者没有这个标签,则容器在启动时不自动加载 这个servlet,如果是0-5,则按照顺序加载这个servlet,执行初始化方法init()。数字是0-5,加载顺序也是0-5。
部署到服务器,启动服务器即可。