THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||
---|---|---|---|---|
| ||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> <jaxrs:server id="customerService" address="/customers"> <jaxrs:serviceBeans> <ref bean="serviceBean"/> </jaxrs:serviceBeans> </jaxrs:server> <bean id="serviceBean" class="service.CustomerService"/> </beans> |
Spring Boot
Example1:
Code Block | ||
---|---|---|
| ||
package sample.rs.service;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.jaxrs.spring.JaxRsConfig;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
@SpringBootApplication
@Import(JaxRsConfig.class)
public class SampleRestApplication {
public static void main(String[] args) {
SpringApplication.run(SampleRestApplication.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean(ApplicationContext context) {
return new ServletRegistrationBean(new CXFServlet(), "/services/*");
}
@Bean
public Server rsServer() {
JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
endpoint.setServiceBean(new HelloService());
endpoint.setAddress("/helloservice");
return endpoint.create();
}
} |
Example2:
Code Block | ||
---|---|---|
| ||
package sample.rs.service;
import org.apache.cxf.jaxrs.spring.SpringComponentScanServer;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
@SpringBootApplication
@Import(SpringComponentScanServer.class)
public class SampleScanRestApplication {
public static void main(String[] args) {
SpringApplication.run(SampleScanRestApplication.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean(ApplicationContext context) {
return new ServletRegistrationBean(new CXFServlet(), "/services/helloservice/*");
}
@Bean
public HelloService helloService() {
return new HelloService();
}
} |
Example3:
Code Block | ||
---|---|---|
| ||
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package sample.rs.service;
import java.util.Collections;
import java.util.Set;
import javax.servlet.ServletConfig;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet;
import org.apache.cxf.jaxrs.spring.JaxRsConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
@SpringBootApplication
@Import(JaxRsConfig.class)
public class SampleScanRestApplication2 {
public static void main(String[] args) {
SpringApplication.run(SampleScanRestApplication2.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean(ApplicationContext context) {
Application app = (Application)context.getBean("helloApp");
@SuppressWarnings("serial")
CXFNonSpringJaxrsServlet servlet = new CXFNonSpringJaxrsServlet(app) {
@Override
protected boolean isIgnoreApplicationPath(ServletConfig servletConfig) {
return false;
}
};
return new ServletRegistrationBean(servlet, "/*");
}
@Bean
public Application helloApp() {
return new JaxrsApplication();
}
@ApplicationPath("/services/helloservice")
public static class JaxrsApplication extends Application {
public Set<Object> getSingletons() {
return Collections.<Object>singleton(new HelloService());
}
}
}
|
Please also check the classes in this package and this demo.
(Here is a demo for JAX-WS users).Please see CXF SpringBoot documentation.
Configuring JAX-RS endpoints programmatically without Spring
...