java - 如何在java中公开cxf Restful Web服务?

标签 java jax-rs cxf

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

最佳答案

您需要在 serviceBean 中使用 javax.ws.rs 注释您的 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/

相关文章:

java - Camel CXF : compressing response with CXFOutInterceptor throws classcast exception

java - 带有 Apache CXF 注释的 UsernameToken WS-Security (WSS4J)

perl - 如何在 SOAP::Lite 中处理命名空间生成?

java - 二叉搜索树差异键之和

java - Java 中的对象文字

java - 应用程序服务器中的线程

java - 将应用程序/xml POST 消息发送到 REST API 不起作用

java - 需要有关 Java 8 流逻辑的帮助

java - 将响应 header 添加到 JAX-RS Web 服务

rest - 什么是最好的 JAX-RS 库?