如何在Java中公开CXF Restful Web服务?

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

解决方法:

您将需要在serviceBean中使用基于javax.ws.rs的批注对API进行批注,这些批注表示HTTP方法(例如GET,PUT,POST,DELETE等).这会将您的API暴露给您需要在CXF中创建的JAX-RS服务器.配置XML.像这样-

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

此配置文件与您的web.xml中的< context-param> 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的意义.

上一篇:最详细的【微信小程序+阿里云WebService服务】开发部署指引(三):开通阿里云主机


下一篇:java-CXF:如何动态提供SSL证书?