[ 
https://issues.apache.org/jira/browse/CXF-6694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15041791#comment-15041791
 ] 

Vladimir Kulev commented on CXF-6694:
-------------------------------------

Frontend is JAXRS service, it gets discovered automatically by 
{{SpringComponentScanServer}}, you can access it at 
http://localhost:8080/api/status
Backend is just a normal bean used to demonstrate idea of not having default 
constructor for JAXRS service class in case of Spring.

Another way to do it in Spring (in this case you don't need to write those 
@Bean methods):
{code:java}
    @Service
    @Path("/")
    public static class Frontend {

        private final Backend backend;

        @Autowired
        public Frontend(Backend backend) {
            this.backend = backend;
        }

        @Path("/status")
        @GET
        public String getStatus() {
            return backend.getStatus();
        }
    }

    @Service
    public static class Backend {

        public String getStatus() {
            return "Hello, world!";
        }
    }
{code}

> SpringResourceFactory does not work with constructor-autowired beans
> --------------------------------------------------------------------
>
>                 Key: CXF-6694
>                 URL: https://issues.apache.org/jira/browse/CXF-6694
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.1.4
>            Reporter: Vladimir Kulev
>              Labels: spring
>         Attachments: CXF-6694.patch
>
>
> When used with constructor-autowired bean, it fails with "Resource class ... 
> has no valid constructor" exception. We don't need constructor at all when we 
> already have a singleton instance from Spring.
> Also it looks like {{isSingleton()}} is called for the first time before 
> correct value is calculated a few lines below: {{isSingleton = 
> ac.isSingleton(beanId)}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to