已遵循Eclipse的esapi4java-core-2.0-install-guide.pdf並將其應用於Websphere 7.5環境中。Websphere 7中未定義'esapi'
第1步 - 我在庫中添加了esapi.jar(項目>屬性> Java構建路徑>庫選項卡>添加外部JAR)。
第2步 - 我找到esapi &驗證.properties文件在我機器上的一個文件夾中。
第3步 - 我選擇爲所有運行配置添加esapi(Windows>首選項> Java>已安裝的JRE)。我突出顯示了WebSphere Application Server v7.0 JRE,選擇了「編輯」並將esapi.jar添加到該庫列表。在相同的表單上,我將缺省虛擬機參數提示符-Dorg.owasp.esapi.resources =「/ path/to/.esapi」參數添加到了我的esapi &驗證.properties文件所在的路徑。
下面是失敗的JSP頁面代碼:
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ page import="java.net.*" %>
<script type="text/javascript" language="javascript">
function validateForm()
{
var userURL = "http://www.google.com";
var isValidURL = ESAPI.validator().isValidInput("URLContext", userURL, "URL", 255, false);
if (isValidURL) {
alert("true");
} else {
alert("false");
}
}
</script>
在執行這段代碼,我得到的錯誤: 「ESAPI」未定義(發生在VAR isValidURL語句)。
我錯過了什麼?
我添加了導入語句 - 謝謝 - 但仍然收到相同的錯誤。由於安裝說明並不清楚(關於分配VM參數的哪個JRE,我將其任意分配給WebSphere Application Server v7.0 JRE),因此我還嘗試在管理控制檯>應用程序服務器>(我的服務器)中設置通用VM參數)> Java和進程管理>進程定義> Java虛擬機。這也沒有區別。我嘗試在server.xml中添加systemproperties以指向兩個.properties文件 - 仍然不起作用。想法? – Mark
您是否收到堆棧跟蹤或瀏覽器錯誤?如果它的堆棧跟蹤,將其添加到問題。如果它來自瀏覽器,請將您的任務修改爲'isValidURL' – avgvstvs
avgvstvs - 您的更正確實解決了我報告的問題 - 謝謝。現在我有一個新的概率。 ESAPI.properties被找到,但我得到了「在servlet/WEB-INF/tiles-components/frm/main的服務方法之一中創建的未捕獲異常。應用程序(myapp)EAR中的jsp。創建的異常:com.ibm.websphere.servlet.error.ServletErrorReport:java.lang.NoClassDefFoundError:org.apache.commons.fileupload.ProgressListener「。我沒有下載並添加org.apache.commons.fileupload.jar到我的EAR的依賴但沒有解決它。什麼是缺少的? – Mark