gpt4 book ai didi

java - 使用 apache cxf 添加多个端点/服务类

转载 作者:行者123 更新时间:2023-11-29 05:03:14 25 4
gpt4 key购买 nike

我正在尝试使用 apache cxf(非 spring)实现 rest webservice。我已经配置了我的 web.xml 并添加了一个端点地址,它工作正常,但现在我想再添加一个端点地址或一个服务类,但我无法执行此操作,因为第二个覆盖了第一个.我的 web.xml 是这样的

<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>

最佳答案

您可以这样做以获得多个端点:

网络.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 with 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>

资源类如下:

@Path("endpoint1/")
public class Resource1

@Path("endpoint2/")
public class Resource2

现在你有不同的端点

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

关于java - 使用 apache cxf 添加多个端点/服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31344264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com