C
coobo
Unregistered / Unconfirmed
GUEST, unregistred user!
浏览器显示:
error:java.lang.UnsatisfiedLinkError:java/security/AccessController.doPrivileged possible cause....(后面的看不到了)
这是什么错误?是远程对像没有注册成功吗?
另外:远程对像在什么时候注册?是在调用它的时候,还是手工加入?
《JAVA服务器程序设计》第十一章 RMI与Servlet 中第一个例子
我想在主机上是不是有点问题,HelloWorldImpl 中我想后将host="zhao" 和host="zhao:8080"都不行;
书上有这么一段话:
在URL中可以加一个端口号,如/myhost:1234/HelloWorldServer。注册表的缺省端口是1099。如服务器创建的注册表不在缺省的端口1099上,在URL中就要指定端口号。
8080应该叫什么端口(http?),也是注册表端口吗?
看了下面的贴子,我将jb的RMIRegistry选中,出错如下
java.rmi.NotBoundException: HelloWorldServer
==================
package examples.helloworld;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface HelloWorld extends Remote {
String sayHelloWorld() throws RemoteException ;
}
===================
package examples.helloworld;
import java.rmi.* ;
import java.rmi.server.UnicastRemoteObject;
public class HelloWorldImpl extends UnicastRemoteObject implements HelloWorld {
private String name ;
public HelloWorldImpl(String s) throws RemoteException {
super();
name = s ;
}
public String sayHelloWorld() throws RemoteException{
return "Hello World!" ;
}
public static void main(String[] args) {
String host = "zhao:8080" ;
String serverName = "HelloWorldServer" ;
建并安装一个安全管理员
System.setSecurityManager(new RMISecurityManager());
try {
HelloWorldImpl obj = new HelloWorldImpl(serverName);
远程对像HelloWorldServer与该对象的一个指针捆绑在一起
Naming.rebind("//" + host + "/" + serverName,obj) ;
System.out.println("HelloWorldServer bound in registry") ;
} catch (Exception e) {
System.out.println("HelloWorldImpl err:" + e.getMessage());
e.printStackTrace();
}
}
}
========applet========
package examples.helloworld;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.rmi.*;
public class HelloWorldApplet extends Applet {
String Remotemessage = "" ;
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
public void init() {
String host = getCodeBase().getHost() ;
try {
HelloWorld obj = (HelloWorld)Naming.lookup("//" + host + "/HelloWorldServer") ;
Remotemessage = obj.sayHelloWorld();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void paint(Graphics g) {
g.drawString(Remotemessage,25,50);
}
}
error:java.lang.UnsatisfiedLinkError:java/security/AccessController.doPrivileged possible cause....(后面的看不到了)
这是什么错误?是远程对像没有注册成功吗?
另外:远程对像在什么时候注册?是在调用它的时候,还是手工加入?
《JAVA服务器程序设计》第十一章 RMI与Servlet 中第一个例子
我想在主机上是不是有点问题,HelloWorldImpl 中我想后将host="zhao" 和host="zhao:8080"都不行;
书上有这么一段话:
在URL中可以加一个端口号,如/myhost:1234/HelloWorldServer。注册表的缺省端口是1099。如服务器创建的注册表不在缺省的端口1099上,在URL中就要指定端口号。
8080应该叫什么端口(http?),也是注册表端口吗?
看了下面的贴子,我将jb的RMIRegistry选中,出错如下
java.rmi.NotBoundException: HelloWorldServer
==================
package examples.helloworld;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface HelloWorld extends Remote {
String sayHelloWorld() throws RemoteException ;
}
===================
package examples.helloworld;
import java.rmi.* ;
import java.rmi.server.UnicastRemoteObject;
public class HelloWorldImpl extends UnicastRemoteObject implements HelloWorld {
private String name ;
public HelloWorldImpl(String s) throws RemoteException {
super();
name = s ;
}
public String sayHelloWorld() throws RemoteException{
return "Hello World!" ;
}
public static void main(String[] args) {
String host = "zhao:8080" ;
String serverName = "HelloWorldServer" ;
建并安装一个安全管理员
System.setSecurityManager(new RMISecurityManager());
try {
HelloWorldImpl obj = new HelloWorldImpl(serverName);
远程对像HelloWorldServer与该对象的一个指针捆绑在一起
Naming.rebind("//" + host + "/" + serverName,obj) ;
System.out.println("HelloWorldServer bound in registry") ;
} catch (Exception e) {
System.out.println("HelloWorldImpl err:" + e.getMessage());
e.printStackTrace();
}
}
}
========applet========
package examples.helloworld;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.rmi.*;
public class HelloWorldApplet extends Applet {
String Remotemessage = "" ;
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
public void init() {
String host = getCodeBase().getHost() ;
try {
HelloWorld obj = (HelloWorld)Naming.lookup("//" + host + "/HelloWorldServer") ;
Remotemessage = obj.sayHelloWorld();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void paint(Graphics g) {
g.drawString(Remotemessage,25,50);
}
}