gpt4 book ai didi

java - 如何在 java 中公开 cxf restful web 服务?

转载 作者:行者123 更新时间:2023-11-30 08:38:19 25 4
gpt4 key购买 nike

是否有类似Endpoint.publish(address, implementor) 的类来公开服务?我正在尝试在 Tomcat 上部署我的应用程序。 CXF 或 JAX-RS 中是否有任何类可以公开 REST Web 服务?

最佳答案

您需要使用 javax.ws.rs 在 serviceBean 中注释您的 API基于表示 HTTP 方法的注释,如 GET , PUT , POST , DELETE等。这会将您的 API 公开给您需要在 CXF 配置 XML 中创建的 JAX-RS 服务器。像这样的 -

<jaxrs:server id="base" address="/">
<jaxrs:providers>
<ref bean="provider1" />
<ref bean="provider2" />
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref bean="serviceBean" />
</jaxrs:serviceBeans>
</jaxrs:server>

此配置文件与提到的 <context-param> 相同。 web.xml 中的 contextConfigLocation

如果您不使用 Spring,可以使用以下代码以编程方式创建 JAX-RS 服务器:

JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setResourceClasses(abc.class);

List providers = new ArrayList();
sf.setProviders(providers);
sf.setAddress(ENDPOINT_ADDRESS);

server = sf.create();

但我看不出在没有 Spring 的情况下使用 CXF 有什么意义。

关于java - 如何在 java 中公开 cxf restful web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614351/

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