2012-06-15 40 views
1

我對servlets相當陌生,所以我希望這不是一個明顯的問題。所以我有一個使用模板在NetBeans中創建的簡單Java servlet。我有我在web.xml中列出允許的主機上創建一個環境參數(我的請求參數一個是我將比較反對這個列表中的網址):在servlet的web.xml中保留單詞嗎?

<context-param> 
    <param-name>allowedHosts</param-name> 
    <param-value> 
     http://opendap.co-ops.nos.noaa.gov/thredds/wms/NOAA/CBOFS/MODELS/201206/nos.cbofs.fields.nowcast.20120612.t00z.nc?service=WMS&version=1.3.0&request=GetCapabilities 
     http://www.google.com 
     http://www.facebook.com 
    </param-value> 
</context-param> 

當我把唯一的虛擬網址像谷歌和Facebook,這完美的作品。但是,當我添加第一個URL時,Tomcat服務器甚至無法部署。看着我的日誌,我看到在一個很長的堆棧跟蹤的頂部:

SEVERE: Parse Fatal Error at line 19 column 146: The reference to entity "version" must end with the ';' delimiter. 
org.xml.sax.SAXParseException: The reference to entity "version" must end with the ';' delimiter. 

行19列146確實指向一個長的URL我在的上下文參數列表中的「版本」部分。所以顯然「版本」是某種保留字。如果我從這個URL中刪除「版本」參數,「請求」也是一個問題。

我可以通過只做http://opendap.co-ops.nos.noaa.gov/thredds/wms/作爲URL來解決這個問題(因爲最終我想要一個不是特定URL的主機列表),但是我想知道爲了解決這個問題需要做些什麼呢?有沒有辦法在web.xml中包含具有這些「保留字」的URL?

謝謝!

回答

4

只要把「& amp」 (不含引號)而不是URL中的&符號。

希望這有助於 - DF

編輯:試試這個:

<context-param> 
<param-name>allowedHosts</param-name> 
<param-value> 
    http://opendap.co-ops.nos.noaa.gov/thredds/wms/NOAA/CBOFS/MODELS/201206/nos.cbofs.fields.nowcast.20120612.t00z.nc?service=WMS&amp;version=1.3.0&amp;request=GetCapabilities 
</param-value> 

EDIT2:PS這些東西被稱爲 「實體」 的XML - 更多信息

做一個谷歌
+0

我不確定您的答案是否正常工作。你是否建議我對網址進行編碼?如'&'而不是? – carmenism

+1

是的,我會更新我的答案(我有幾個去做,因爲StackOverflow的編輯器有點挑剔!) – davidfrancis

+0

謝謝;這工作! – carmenism