是否有类似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的意义.