在servlet的web.xml中保留单词?

时间:2012-06-15 14:00:14

标签: java tomcat servlets netbeans web.xml

我对servlet相当新,所以我希望这不是一个明显的问题。所以我有一个简单的Java servlet,我是在NetBeans中使用模板创建的。我在web.xml中创建了一个上下文参数,列出了允许的主机(我的一个请求参数是一个我将与此列表进行比较的URL):

<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>

当我只在Google和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列确实指向&#34;版本&#34;我在上下文参数列表中包含的那个长URL的一部分。很明显&#34;版本&#34;是某种保留词。如果我删除&#34;版本&#34;来自此网址的参数&#34; request&#34;也是一个问题。

我可以通过仅使用http://opendap.co-ops.nos.noaa.gov/thredds/wms/作为URL来解决这个问题(因为最终我想要一个主机列表而不是特定的URL),但我想知道如果要解决这个问题需要做些什么。 ..是否有办法包含具有此类&#34;保留字的网址&#34;在web.xml中?

谢谢!

1 个答案:

答案 0 :(得分:4)

只需输入“&amp; 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中被称为“实体” - 为Google提供更多信息