У меня есть сервер под управлением IBM AIX 6.1.7. 15 TL07, и я пытаюсь установить Cognos Business Intelligence 10.2.2 на WebSphere Application Server Network Deployment 7.0.0.29, используя кластер серверов для развертывания и управления моим приложением и используя сервер IBM DB2 10.5 для сохранения моего хранилища контента. Когда я запускаю один из серверов приложений моего кластера, я получаю следующее сообщение об ошибке при попытке загрузить свой URL диспетчера:
Error 404: javax.servlet.UnavailableException: SRVE0200E: Servlet [com.cognos.pogo.isolation.ServletWrapper]: Could not find required class - class java.lang.ClassNotFoundException: com.cognos.pogo.isolation.ServletWrapper
Проверка файла журнала WAS SystemOut.log
Я обнаружил следующее сообщение об ошибке ...
Servlet cfgss is currently unavailable: SRVE0200E: Servlet[com.cognos.pogo.isolation.ServletWrapper]: Could not find required class -com.cognos.pogo.isolation.ServletWrapper
... который привел меня к этой технической заметке IBM , в которой упоминается, что это может быть проблема с отсутствующей записью CLASSPATH в переменных среды моего сервера WAS.
Однако в примечании ничего не говорится о том, как чтобы исправить эту проблему, и я абсолютно не знаю, что мне добавить в запись CLASSPATH. com / products> www.domain.com/en_ca/products
Я могу заставить работать 1 и 2, но 2 мешает работе 3. Есть ли способ обеспечить, чтобы URL-адрес состоял из трех частей, или есть лучший способ сделать это?
Спасибо
# rule 1
RewriteRule ^products/?$ /en_ca/products [L,R=301]
# rule 2
RewriteRule ^products/([^/]+)/?$ /en_ca/$1 [L,R=301]
# don't use this one since it would allow for greater than 2 /
# products/cat/cat_food/diners will write: en_ca/cat_food/diners
# RewriteRule ^products/(.*)/(.+)$ /en_ca/$2 [L,R=301]
# rule 3
# to be extra careful to only include 2 /, do it this way:
RewriteRule ^products/([^/]+)/([^/]+)/?$ /en_ca/$2 [L,R=301]
Это должно сработать. Не используйте жадный. * (Ничего, включая /), используйте ограничивающий [^ /] * (что угодно, кроме /, то есть). Также безопаснее изменить *, ноль или более, на +, который равен 1 или более.
Я полагаю, что у вас может быть ошибка где-то еще, просмотрите, что происходит здесь:
Правило 1: берите только / products, и измените его на: en_ca / products. Все последующие действия не сработают, потому что теперь путь начинается с en_ca. Кстати, вы можете избавиться от: http: //% {SERVER_NAME} в перезаписи. / en_ca / $ 1 достаточно.
Правило 2: возьмите / products / product_name и перепишите его на: / en_ca / product_name Теперь никакое другое правило не изменит его, потому что оно больше не начинается с продуктов
. Правило 3 сработает только в том случае, если путь содержит 2 / и начинается с продуктов, поэтому ни правило 1, ни 2 не могут создать URL-адрес, который будет перезаписан 3-м номером. правило.
Добавление /? (0 или 1 завершающая косая черта)защищает вас также от людей, которые входят в / products / или products / product_name /