2012-07-11 1 views
1

Я вижу много примеров в Интернете людей делают это как ..Web.xml Может ли <сервлет-имя> быть классом?

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 
<servlet-mapping> 
<servlet-name>javax.ws.rs.core.Application</servlet-name> 
<url-pattern>/hello/*</url-pattern> 
</servlet-mapping> 
</web-app> 

Однако, это никогда не работает для меня. Я получаю сообщение об ошибке

java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name javax.ws.rs.core.Application 

Так в чем же секрет, чтобы быть в состоянии использовать имя класса в сервлет-имя непосредственно ??

ответ

0

Объявить сервлет первый:

<servlet> 
    <servlet-name>javax.ws.rs.core.Application</servlet-name> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>javax.ws.rs.core.Application</servlet-name> 
    <url-pattern>/hello/*</url-pattern> 
</servlet-mapping> 
2

Я думаю @davideconsonni получил его почти сразу:

<servlet> 
    <servlet-name>HelloServlet</servlet-name> 
    <servlet-class>javax.ws.rs.core.Application</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>HelloServlet</servlet-name> 
    <url-pattern>/hello/*</url-pattern> 
</servlet-mapping> 
+0

javax.ws.rs.core.Application расширяет объект его не сервлет. – teknopaul