2013-06-25 1 views
1

Я хочу вызвать следующий класс при запуске сервера.класс не инициализируется при запуске сервера

AlertsData в com.mongo.service:

public class AlertsData extends HttpServlet{ 
    public void init(ServletConfig config) throws ServletException{ 
     super.init(config); 
     alertingPoolsData(); 
    } 
}  

web.xml:

<servlet-mapping> 
    <servlet-name>AlertsData</servlet-name> 
    <display-name>AlertsData</display-name> 
    <servlet-class>com.mongo.service.AlertsData</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet-mapping> 

получения ошибки folloiwng:

SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/lbmongo]] 
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:83) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:785) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

С этого сервера не запускается и получение следующей ошибки. Некоторые из них помогут :( Я хочу вызвать класс AlertsData, когда сервер запускается.

+0

Что делает изменениеПультыДата() действительно? –

+0

Это не полное сообщение об ошибке. Будет гораздо больше объяснений, почему Context не удалось запустить. –

+0

Полное сообщение об ошибке: alertingPoolsData называет MongoDB каждые 5 секунд: – user2325703

ответ

0

Ваша конфигурация сервлета web.xml выглядит недействительной. Элементы, такие как servlet-class и load-on-startup, относятся к разделу servlet, а не к разделу servlet-mapping. Вы должны иметь как servlet секцию и секцию servlet-mapping и т.д .:

<servlet> 
    <servlet-name>AlertsData</servlet-name> 
    <display-name>AlertsData</display-name> 
    <servlet-class>com.mongo.service.AlertsData</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>AlertsData</servlet-name> 
    <url-pattern>/alerts</url-pattern> 
</servlet-mapping> 

url-pattern под sevlet-mapping является URL вы хотите использовать для доступа к сервлету (заменить «/alerts» по собственному URL).