Как заставить Джерси загружать свои услуги? - PullRequest
1 голос
/ 28 сентября 2010

У меня проблемы с приложением джерси, работающим на джет-сервере, запуск которого займет до 30 секунд. Я не знаю, что вызывает такое поведение, и я не уверен, как его отладить.

Джерси не запускается до тех пор, пока не будет выполнен первый HTTP-запрос к одной из его служб. После того, как первый запрос сделан, печатается следующее:

INFO: Initiating Jersey application, version 'Jersey: 1.3 06/17/2010 04:53 PM'

После этого проходит от 5 до 45 секунд, а затем Джерси печатает информацию о том, какие ресурсы он нашел, и отвечает на запрос HTTP.

Во-первых, я хотел бы заставить Джерси запускаться, когда остальная часть приложения запускается как хак, чтобы обойти это, пока я не найду виновника. Есть ли способ сделать это без эмуляции фактического HTTP-запроса на мол?

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

1 Ответ

0 голосов
/ 02 ноября 2011

Вы можете попробовать следующее в вашем web.xml:

<servlet>
    <servlet-name>ServletAdaptor</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

Я не уверен, почему произошла длительная задержка - возможно, она выполняет какую-то форму проверки обновлений - можете ли вы отслеживать трафик http из своего приложения? Glassfish делает это, и это может занять некоторое время.

...