java - Add multiple endpoint / service classes using apache cxf -


i trying implement rest webservice using apache cxf (non-spring). have configured web.xml , added 1 end-point address, works fine want add 1 more end-point address or 1 more service class , unable because second 1 overrides first one. web.xml this

<servlet>         <display-name>cxfnonspringjaxrsservlet</display-name>         <servlet-name>cxfnonspringjaxrsservlet</servlet-name>         <servlet-class>org.apache.cxf.jaxrs.servlet.cxfnonspringjaxrsservlet</servlet-class>         <init-param>             <param-name>jaxrs.serviceclasses</param-name>             <param-value>abc</param-value>         </init-param>             <init-param>                 <param-name>jaxrs.address</param-name>                 <param-value>/abc</param-value>             </init-param>          <load-on-startup>1</load-on-startup>     </servlet>            <servlet>         <display-name>cxfnonspringjaxrsservlet</display-name>         <servlet-name>cxfnonspringjaxrsservlet</servlet-name>         <servlet-class>org.apache.cxf.jaxrs.servlet.cxfnonspringjaxrsservlet</servlet-class>         <init-param>             <param-name>jaxrs.serviceclasses</param-name>             <param-value>xyz</param-value>         </init-param>         <init-param>             <param-name>jaxrs.address</param-name>             <param-value>/xyz</param-value>         </init-param>          <load-on-startup>1</load-on-startup>     </servlet> 

you can have multiple endpoints:

web.xml

<servlet> <servlet-name>s1</servlet-name>  <servlet-class>     org.apache.cxf.jaxrs.servlet.cxfnonspringjaxrsservlet </servlet-class> <init-param> <param-name>jaxrs.serviceclasses</param-name> <!-- multiple resource classes separated space --> <param-value> com.gsdev.resource1 com.gsdev.resource2 com.ttdev.bs.bookselectionsresource </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>s1</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> 

resource classes like:

@path("endpoint1/") public class resource1  @path("endpoint2/") public class resource2 

now have different endpoints as

http://host:port/webapp/services/endpoint1/ http://host:port/webapp/services/endpoint2/ 

Comments