小编典典

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

java

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


阅读 212

收藏
2020-11-26

共1个答案

小编典典

您将需要来注释的API在serviceBean
javax.ws.rs代表HTTP方法,如基于注释GETPUTPOSTDELETE,等,这将暴露你的API到JAX-
RS服务器,您需要在CXF配置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>

该配置文件与<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的意义。

2020-11-26