RMI服务启动创建一个public static List list;
并且list = new ArrayList();
list.add("ss");
添加对象
public class RmiServer {
public static List list;
public static void main(String[] args) {
try {
// 加载安全管理器
// System.setSecurityManager(new RMISecurityManager());
// 创建远程接口实现类的实例。
AddServerImpl addImpl = new AddServerImpl();
// 注册远程服务的端口
LocateRegistry.createRegistry(1099);
// 将远程实例绑定为远程服务。
Naming.bind("rmi://127.0.0.1:1099/addnum", addImpl);
list = new ArrayList();
list.add("ss");
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AlreadyBoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
tomcat启动
在servlet里面
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(RmiServer.list.size());
}
报错:
严重: Servlet.service() for servlet TestServlet threw exception
java.lang.NullPointerException
at com.hiteam.mysearch.servlet.TestServlet.doPost(TestServlet.java:59)
at com.hiteam.mysearch.servlet.TestServlet.doGet(TestServlet.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
RmiServer.list以证明为空。这是为什么呢,是因为没有共享内存还是static生命周期问题