Основной вопрос о отображении сервлетов - PullRequest
1 голос
/ 04 февраля 2009

Я новичок в J2EE и связанных с ним вещах в целом. Я пытаюсь переместить определенное веб-приложение с развертывания сервера Sun One на JBoss. Приложение заполнено множеством сервлетов, каждый из которых перенаправляет на другой. Для меня существует слишком много сервлетов, чтобы ввести сопоставление между каждым из этих классов сервлетов в URL-сопоставление индивидуально в web.xml. Код приложения имеет много перенаправлений, где они сами называют имена классов сервлетов в URL-адресе перенаправления. На данный момент, когда я запускаю его на JBoss, перенаправления на URL с именами классов сервлетов в URL, похоже, не работают на JBoss (он выдает 404: Not Found, возможно, поскольку в web.xml нет сопоставления). Итак, есть ли какой-либо параметр конфигурации, который я могу установить, чтобы это происходило, или нужно вручную вводить каждое и каждое сопоставление URL-паттерна в сервлет в файле web.xml?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 04 февраля 2009

Есть два решения.

  • Как мы знаем, JBoss использует Tomcat под капотом в качестве контейнера сервлета. Вы можете включить сервлет invoker, который избавит вас от отображения всего лота в web.xml. Но будьте осторожны, это будет наивно, и вовсе не поощряется .

  • Во-вторых, вы можете написать еще один сервлет / фильтр и отобразить его в своем файле web.xml для каждого шаблона URL. Затем этот новый ваш сервлет может пересылать запросы любому сервлету.

Надеюсь, вы меня поняли.

0 голосов
/ 04 февраля 2009

Ну, в коде есть несколько жестко закодированных URL, но даже если я набрал правильные URL в браузере напрямую, я все равно получаю 404. Существует около 30 сервлетов (приблизительное приближение). Пример: http://FQDN_SERVER.com/?arg1=ABCD&arg2=XYZ Здесь имя сервлета-класса в буквальном смысле является именем класса сервлета без расширения «.class», что может быть не очень хорошей практикой. Но код полон таких перенаправлений, и если мне нужно изменить это, я должен добавить новый URL-шаблон для каждого из этих сервлетов в файле web.xml и создать новый красный прямоугольный URL для каждого из этих сервлетов. Так могу ли я в любом случае избежать этого или мне придется пережить боль, связанную с выполнением вышеупомянутого?

Спасибо, Манодж

0 голосов
/ 04 февраля 2009

Извините, URL-шаблон выглядит так http://FQDN_SERVER.com/servlet-classname?arg1=ABCD&arg2=XYZ

0 голосов
/ 04 февраля 2009

Не уверен, что вы подразумеваете под этим

код приложения имеет много перенаправлений, где они сами называют имена классов сервлетов в URL-адресе перенаправления

У вас есть жестко запрограммированные URL в классах сервлетов? Сколько сервлетов? Если у вас есть жестко запрограммированные URL-адреса, все они могут быть повреждены, поскольку контекст немного отличается, или имя приложения и т. Д. Вы можете опубликовать пример?

...