[英]Java get POST parameters issue
我嘗試將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
java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
當您嘗試將類的數組類型轉換為線性類型時,JVM java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
。
在這種情況下,嘗試強制轉換String- String -> String[]
,反之亦然,將導致JVM在運行時引發此特定異常。
我建議您通過在println
語句上設置斷點來檢查entry
的類型,並檢查entry
變量。
context.getInitialRequestParameterMap()
的類型應為Map<String, String[]>
ClassCastException
的原因是您將String[]
強制轉換為String
(從簽名[Ljava.lang.String
您可以看出它是String[]
)
因此,請先將entry.getValue()強制轉換為String[]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.