我尝试将从网站发布的POST参数发送到Java WebApp。 java应用程序正在使用一个名为EchoStudio的框架。
这是Java端代码:
ContainerContext context = (ContainerContext) getContextProperty(ContainerContext.CONTEXT_PROPERTY_NAME);
ClientProperties clientProperties = context.getClientProperties();
for (String s : clientProperties.getPropertyNames()) {
System.out.println(s + " = " + clientProperties.get(s));
}
Iterator entries = context.getInitialRequestParameterMap().entrySet().iterator();
while (entries.hasNext()) {
Entry entry = (Entry) entries.next();
System.out.println(entry.getKey() + "/" + entry.getValue().toString());
}
输出显示键,但不显示值(entry.getValue(。。toString()),我有这个值的错误:
java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
答案 0 :(得分:0)
java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
。
在这种情况下,尝试转换String -> String[]
或反之亦然会导致JVM在运行时抛出此特定异常。
我建议您通过在entry
语句上设置断点来检查println
的类型,并检查entry
变量。
答案 1 :(得分:0)
context.getInitialRequestParameterMap()
的类型应为Map<String, String[]>
引发ClassCastException
是因为您将String[]
投射到String
(来自签名[Ljava.lang.String
,您可以告诉String[]
)
首先尝试将他们的entry.getValue()转换为String[]