2012-06-15 4 views
1

Я довольно новичок в сервлетах, поэтому надеюсь, что это не очевидный вопрос. Поэтому у меня есть простой Java-сервлет, который я создал в NetBeans, используя шаблон. У меня есть параметр контекста, который я создал в web.xml, что списки разрешенных хостов (один из моих параметров запроса является URL, который я буду сравнивать с этим списком):зарезервировать слова в 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> 

Когда я ставлю только фиктивные URL-адрес в Google, как и Facebook, это работает отлично. Однако, когда я добавляю первый URL-адрес, сервер Tomcat не может даже развернуть. Глядя на мои журналы, я вижу это в верхней части очень длинной StackTrace:

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. 

Line 19 колонка 146 действительно указывает на «версии» часть этого длинного URL у меня есть в списке параметров контекста. Таким образом, очевидно, что «версия» является своего рода резервным словом. Если я удалю параметр «версия» из этого URL-адреса, «запрос» также является проблемой.

Я могу обойти это, сделав только http://opendap.co-ops.nos.noaa.gov/thredds/wms/ в качестве URL-адреса (потому что в конечном итоге я хочу, чтобы список хостов не был определенными URL-адресами), но мне было интересно, что нужно делать, чтобы обойти это в противном случае ... есть способ включить URL-адреса с такими «резервными словами» в web.xml?

Спасибо!

ответ

4

Просто введите «& amp;» (без кавычек) вместо амперсандов в вашем URL-адресе.

Надеется, что это помогает - DF

Edit: Попробуйте это:

<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 для получения дополнительной информации

+0

Я не уверен, что ваш ответ работал правильно. Вы предлагаете мне кодировать URL-адреса? Например, '&' вместо? – carmenism

+1

Да, я обновлю свой ответ (у меня было несколько вопросов, так как редактор StackOverflow был немного суетливым!) – davidfrancis

+0

Спасибо; это сработало! – carmenism

Смежные вопросы