标签:Java String 错误 UnicastRemoteObject 汇总 server Util java rmi
目录
1.使用rmi测试发生的异常
java.rmi.server.ExportException: remote object implements illegal remote interface; nested exception is:
java.lang.IllegalArgumentException: illegal remote method encountered: public abstract java.lang.String com.righteye.remote.IHello.sayHello(java.lang.String)
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:228)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:320)
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:198)
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:180)
at com.righteye.remote.impl.IHelloImpl.<init>(IHelloImpl.java:10)
at com.righteye.remote.impl.RmiServer.main(RmiServer.java:15)
Caused by: java.lang.IllegalArgumentException: illegal remote method encountered: public abstract java.lang.String com.righteye.remote.IHello.sayHello(java.lang.String)
at sun.rmi.server.Util.checkMethod(Util.java:267)
at sun.rmi.server.Util.getRemoteInterfaces(Util.java:246)
at sun.rmi.server.Util.getRemoteInterfaces(Util.java:216)
at sun.rmi.server.Util.createProxy(Util.java:146)
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:226)
... 6 more
解决方案:
注册远程调用的服务需要 throws RemoteException
public interface IHello extends Remote {
public String sayHello(String name) throws RemoteException;
}
public class IHelloImpl extends UnicastRemoteObject implements IHello {
protected IHelloImpl() throws RemoteException {
super();
}
@Override
public String sayHello(String name) throws RemoteException {
return "Hello" + name;
}
}
2.Mybatis执行sql语句参数错误
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.apache.ibatis.binding.BindingException: Parameter 'myname' not found. Available parameters are [arg1, arg0, param1, param2]
### The error may exist in com/righteye/day01/dao/UserDao.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into user(username, password) values(?, ?)
### Cause: org.apache.ibatis.binding.BindingException: Parameter 'myname' not found. Available parameters are [arg1, arg0, param1, param2]
解决方案:参数名不匹配问题,当传入多个参数的时候,可以使用对象的形式进行传参,使用对象属性名进行赋值;如果使用基本数据类型,可以在接口方法声明的参数前加上Param(自定义参数名) 给参数起别名
int insertUser(@Param("myname")String username, @Param("pwd")String password);
<insert id="insertUser">
insert into user(username, password) values(#{myname}, #{pwd})
</insert>
标签:Java,String,错误,UnicastRemoteObject,汇总,server,Util,java,rmi 来源: https://blog.csdn.net/qq_45888932/article/details/122365048
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。