我正在创建我的第一个非常简单的RMI客户端-服务器应用程序。
这是代码:
接口“ ICommunication”
package itu.exercies.RMI.server;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface ICommunication extends Remote
{
public String doCommunicate(String name) throws RemoteException;
}
接口实现“ CommunicationImpl”:
package itu.exercies.RMI.server;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class CommunicationImpl extends UnicastRemoteObject implements ICommunication {
/**
*
*/
private static final long serialVersionUID = 1L;
public CommunicationImpl() throws RemoteException {
super();
}
@Override
public String doCommunicate(String name) throws RemoteException {
return "Hello this is server , whats up " +name+ " ?!\n";
}
}
这是服务器“ CommunicationServer”的主要类别:
package itu.exercies.RMI.server;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
public class CommunicationServer {
/**
* @param args
* @throws RemoteException
* @throws MalformedURLException
*/
public static void main(String[] args) throws RemoteException, MalformedURLException {
CommunicationImpl imp = new CommunicationImpl();
Naming.rebind("CommunicationImpl", imp);
System.out.println("Server started...");
System.out.println("Object successfully registered. It is bound to the name 'CommunicationImpl'.");
}
}
这是我的客户“ CommunicationClient”:
package itu.exercies.RMI.client;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import itu.exercies.RMI.server.CommunicationImpl;
public class CommunicationClient {
public static void main(String[] args) throws MalformedURLException, RemoteException, NotBoundException {
String url = new String("rmi://localhost/CommunicationImpl");
CommunicationImpl comm = (CommunicationImpl)Naming.lookup(url);
String reply = comm.doCommunicate("Wiktor");
System.out.println(reply);
}
}
现在,当我尝试运行它时:
线程“主”中的java itu.exercies.RMI.client.CommunicationClientException
java.lang.ClassCastException:无法将$
Proxy0强制转换为itu.exercies.RMI.client.CommunicationClient.main(CommunicationClient
.java:14)
到目前为止,我已经尝试通过使用rmic创建一个’CommunicationImpl’对象的存根来修复它,但是现在不是’$
Proxy0’,该错误涉及到’CommunicationImpl_Stub’:
线程“主”中的异常java.lang.ClassCastException:itu.exercies.RMI.server.CommunicationImpl_Stub无法转换为itu.exercies.RMI.client.CommunicationClient.main(CommunicationClient.java
:14)
在这一点上,我不知道要寻找错误。 有人可以给我建议吗?
更换
CommunicationImpl comm = (CommunicationImpl) Naming.lookup(url);
与
ICommunication comm = (ICommunication) Naming.lookup(url);
CommunicationImpl
是的服务器实现ICommunication
。客户既不知道也不关心实现,仅关心接口。
使用简单的Spring@autowire注入访问ModelMapper。User和CreateUserFormDTO类只是POJO。 会有什么问题?
问题内容: 我使用maven-eclipse创建了一个新的Spring MVC项目,并引发以下错误: (我尝试了stackoverflow的一些解决方案,但这些解决方案在我的情况下不起作用。pom.xml出现了一些我找不到的问题。我为servlet- api添加了提供的作用域,并尝试了它也不起作用。) 我的pom.xml如下: 我的web.xml如下: 问题答案: 更改 至 具有以下说明: 这很像
问题内容: 您好,我的代码正在抛出。StackTrace显示: 即@ ps.setDate(6,(Date)affiliate.getDate()); 在DAO 以下是我的servlet: 以下是我的DAO: 以下是我的DTO: 请在这方面帮助我 问题答案: 由于文档说,将在参数的需要类型的Date对象。但是您似乎在课堂上使用了对象。 这就是为什么你得到了。 要解决此问题,您需要将类中的对象类型更
我在创建一个返回“hello”字符串的简单web服务时遇到了以下错误 白标签错误页此应用程序没有/Error的显式映射,因此您将其视为回退。 我的Web服务终结点: 我的配置类: 我的依赖关系: 我的项目结构:
我正在尝试升级Spring boot 1.4。x- 侦听器的非匹配事件类型:org.springframework.boot.web.context.ServerPortInfoApplication ContextSynalizer 错误:Java.lang.ClassCast异常:org.springframework.context.event.ContextRebrehedEvents不能
问题内容: 在我的应用程序中,我需要将arraylist转换为数组的字符串。但是,我得到一个错误: 在与我在一起的错误: 这是完整的代码: 问题答案: 尝试 注意:我建议将listofurls重命名为arrayOfURLs