【问题标题】:how to find rmi server address on local machine?如何在本地机器上找到 rmi 服务器地址?
【发布时间】:2014-05-30 09:44:24
【问题描述】:

我想为客户端和服务器创建简单的 RMI 程序以从服务器获取日期。我的服务器代码正在编译,但在运行时出现此错误:无效的 URL 字符串 原因:java.net.URISyntaxException:索引 4 处路径中的非法字符:Da 服务器

代码:

// IDate.java
import java.rmi.*;
public interface IDate extends Remote{
String getDate() throws RemoteException;
}

// DateImpl.java
import java.rmi.*;
import java.rmi.server.*;
import java.util.*;
public class DateImpl extends UnicastRemoteObject implements IDate{
public DateImpl() throws RemoteException{}
public String getDate(){
Date d=new Date();
return(d.toString());
}}

// DateServer.java
import java.rmi.*;
public class DateServer{
public static void main(String[] args){
try{
DateImpl di=new DateImpl();
Naming.rebind("DateServer",di);
System.out.println("Date Server is Ready");
}
catch(Exception e){
e.printStackTrace();
}}}

// DateClient.java

import java.rmi.*;
public class DateClient{
public static void main(String[] args)
{
try{
String url="rmi://127.0.0.1/DateServer";
IDate intf=(IDate)Naming.lookup(url);
System.out.println("The Date On Server is: "+intf.getDate());
}
catch(Exception e){
e.printStackTrace(); } } }

【问题讨论】:

  • 你从哪里得到这个异常?请添加具体的堆栈跟踪和相应的代码。
  • 我正在命令提示符下运行和编译代码。如何添加具体的堆栈跟踪?

标签: java client-server rmi


【解决方案1】:
java.net.URISyntaxException: Illegal character in path at index 4: Da te Server
...
Naming.rebind("DateServer",di);

显然这不是真正的代码。无论如何它应该是

Naming.rebind("rmi://localhost/DateServer",di);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2011-05-12
    • 2016-09-06
    相关资源
    最近更新 更多