更新会话变量的java.lang.NoSuchMethodError
我的代码正在运行更新会话变量的java.lang.NoSuchMethodError,java,Java,我的代码正在运行 java.lang.NoSuchMethodError: java.util.Map.replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; iland.client.ClientAction.update(ClientAction.java:82) 这里cl是一个 dao.update(cl); Map session = ActionContext.getContext().getSessio
java.lang.NoSuchMethodError: java.util.Map.replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iland.client.ClientAction.update(ClientAction.java:82)
这里cl
是一个
dao.update(cl);
Map session = ActionContext.getContext().getSession();
session.replace("client", cl);
我用客户机对象更新数据库,更新后用代码更新会话变量
Client cl = new Client();
此代码在我的本地主机中正常工作,但在服务器中部署后,将显示上述异常
如何解决此问题?在会话映射(或在generate till java 7中的映射)中没有名为
replace()的方法。
你只需要做
session.replace("client", cl);
映射就是这样工作的,如果存在key,put(key,value)
将覆盖该值,否则它将创建一个新条目 直到java 8才添加,但您可以使用put
来执行相同的操作:
java.util.Map.replace()
方法仅从java 1.8开始使用。我想,请检查服务器的jdk版本是否从1.8开始使用java从1.8-。抱歉,我不知道,但是put
的工作方式是一样的。
dao.update(cl);
Map session = ActionContext.getContext().getSession();
session.put("client", cl);
V put(K key, V value)
Associates the specified value with the specified key in this map (optional operation).
If the map previously contained a mapping for the key, the old value is replaced by the specified value.
(A map m is said to contain a mapping for a key k if and only if m.containsKey(k) would return true.)