> -----Original Message----- > From: Sergey Beryozkin [mailto:[email protected]] > Sent: Wednesday, August 26, 2009 7:51 AM > To: [email protected] > Subject: Re: getting "NO_RESOURCES_AVAILABLE" from > "AbstractJAXRSFactoryBean.checkResources()" > > Actually, you may not even need to move the behaviours to the > interface, unless Spring proxifies a bean (with AOP, etc). > The model is applied to Spring-injected beans too, the runtime will > only attempt to create an instance of the class described in the > model if no beans matching/implementing a given class/interface have > already been injected....
I could use some clarification of this last point. Assuming the following Spring context: --------------------- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://cxf.apache.org/core http://cxf.apache.org/schemascore.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" /> <jaxrs:server name="restcatalogserver" address="/rest"> <jaxrs:features> <cxf:logging/> </jaxrs:features> <jaxrs:model> <jaxrs:resource name="com.att.ecom.catalog.Catalog" path="/catalog/"> <jaxrs:operation name="getItem" verb="GET" path="/item/{id}"> <jaxrs:param name="id" type="PATH"/> </jaxrs:operation> </jaxrs:resource> </jaxrs:model> <jaxrs:serviceBeans> <ref bean="catalog"/> </jaxrs:serviceBeans> </jaxrs:server> <bean id="catalog" class="com.att.ecom.catalog.Catalog"/> </beans> --------------------- So are you saying that the "name" attribute of "jaxrs:resource" is searched through all existing bean instances for a matching class, and if one is found, it won't create an additional instance? That seems odd. I only propose that because I don't believe it, and I think I can demonstrate it, although I could easily be misunderstanding something. In particular, with this context, how many times would you expect the "Catalog" constructor to be called? Assuming your description, I would say once. However, when I set a breakpoint in the constructor, I hit it twice. One of the stack traces shows it's just Spring creating it, and the other stack trace shows that it's CXF creating it. > > cheers, Sergey > > ----- Original Message ----- > From: "Sergey Beryozkin" <[email protected]> > To: <[email protected]> > Sent: Wednesday, August 26, 2009 3:34 PM > Subject: Re: getting "NO_RESOURCES_AVAILABLE" from > "AbstractJAXRSFactoryBean.checkResources()" > > > > This is where moving the methods to be handled by JAXRS into a > seperate interfaces comes handly. > > So if Catalog were an interface and say CatalogImpl were the > implementation then you'd describe Catalog in the user model (as > > suggested in the prev email) but in Spring you'd declare a > CatalogImpl service bean and inject properties or even proxify it as > > needed. > > > > Give it a try please. The DOSGi demo I linked to describes the > interface only (GreeterService2) in its user model but the OSGI > > Activator registers an interface implementation object > > > > cheers, Sergey > > > >> -----Original Message----- > >> From: Sergey Beryozkin [mailto:[email protected]] > >> Sent: Wednesday, August 26, 2009 2:21 AM > >> To: [email protected] > >> Subject: RE: getting "NO_RESOURCES_AVAILABLE" from > >> "AbstractJAXRSFactoryBean.checkResources()" > >> > >> > >> Hi > >> > >> This is a good news... > >> Here's some more information on how to apply this feature. I'll need > > to > >> document it better - have added a task item...For, given the Catalog > >> class > >> mentioned in this thread the following model can be created : > > > > This is very good information. > > > > One question, though. The way you specify the class to instantiate > is > > different from typical Spring beans. It appears there's no way to > > specify a Spring bean as a resource. As a result, it appears that > > there's no way to inject instance variable values into the resource, > for > > configuration control, for instance. It's odd that the attribute is > > "name", instead of "class". > > > > This is odd, as in the same "jaxrs:server" element is the > > "jaxrs:serviceBeans" element, where you specify the list of beans > that > > represent services. > > > > So, I assume there's some clarity here somewhere that I haven't seen > > yet. > > > >> > >> <model> > >> <resource name=" com.att.ecom.catalog.Catalog" path="/catalog"> > >> <operation name="getItems" verb="GET" path="/items"/> > >> </resource> > >> </model> > >> > >> The schema for 'model' is here : > >> > > > http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/re > >> sources/schemas/jaxrs.xsd > >> > >> it is limiting a bit, specifically, parameter types should be > >> capitalized at > >> the moment and there's no a proper enum definition for parameter > > types. > >> For > >> ex, 'PATH', 'QUERY', 'MATRIX', 'HEADER' is what should be used when > >> describing parameters that would otherwise be annotated with > >> @PathParam, > >> @QueryParam, @MatrixParam, @HeaderParam. There's no need to describe > >> input > >> parameters which are mapped to request bodies. Response parameters > are > >> not > >> described too. > >> > >> 'resource' represents a resource class. It can describe either a > root > >> resource or a subresource one. > >> For ex, if you have > >> > >> @Path("catalog") > >> public class Catalog { > >> > >> @GET > >> @Path("items") > >> public List<Item> getItems() {...} > >> > >> @Path("items/{id}") > >> public Item getItemName(@PathParam("id") Long id) {...} > >> > >> } > >> > >> where getItemName is a subresource locator and Item class has a > method > >> like > >> > >> public class Item { > >> @GET > >> public String getName() {...} > >> } > >> > >> then, if we remove annotations, the same can be described like this > : > >> > >> <model> > >> > >> <resource name=" com.att.ecom.catalog.Catalog" path="/catalog"> > >> <operation name="getItems" verb="GET" path="/items"/> > >> <operation name="getItemName" path="/item/{id}"> > >> > >> </operation> > >> </operation> > >> </resource> > >> > >> <resource name="com.att.ecom.catalog.Item"> > >> <operation name="getName" verb="GET"/> > >> </operation> > >> </resource> > >> > >> </model> > >> > >> The resource with name "com.att.ecom.catalog.Item" is recognized as > a > >> subresource because when it introspects > >> com.att.ecom.catalog.Catalog#getItemName it finds that its return > >> type's > >> name matches '"com.att.ecom.catalog.Item". > >> So it's a flat structure but perhaps I'll support embedding > resources > >> too, > >> similar to the way it's done in WADL. At the moment the only place > >> where > >> this feature is demoed is in a 'greeter_rest' demo in a DOSGi > >> distribution[1] where IMHO this feature can be very handy indeed but > I > >> do > >> want to allocate more time on it and document and enhance it > properly. > >> > >> Sergey > >> > >> [1] > >> > http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/greeter_rest/ > >> > >> > >> KARR, DAVID (ATTCINW) wrote: > >> > > >> >> -----Original Message----- > >> >> From: Sergey Beryozkin [mailto:[email protected]] > >> >> Sent: Tuesday, August 25, 2009 1:02 PM > >> >> To: [email protected] > >> >> Subject: RE: getting "NO_RESOURCES_AVAILABLE" from > >> >> "AbstractJAXRSFactoryBean.checkResources()" > >> >> > >> >> As the last resort/workaround, while you're investigating and > just > >> to > >> >> keep > >> >> you going, you might want to try this feature : > >> >> http://cxf.apache.org/docs/jax-rs.html#JAX-RS- > >> >> RESTfulserviceswithoutannotations > >> >> > >> >> You can describe how Catalog should be treated by the JAX-RS > > runtime > >> >> without > >> >> applying annotations and then register that description from > spring > >> > > >> > I've gotten this to work (config in Spring, not annotations), so > > I'll > >> at > >> > least be able to move forward a bit. > >> > > >> >> KARR, DAVID (ATTCINW) wrote: > >> >> > > >> >> >> -----Original Message----- > >> >> >> From: Sergey Beryozkin [mailto:[email protected]] > >> >> >> Sent: Tuesday, August 25, 2009 10:06 AM > >> >> >> To: [email protected] > >> >> >> Subject: RE: getting "NO_RESOURCES_AVAILABLE" from > >> >> >> "AbstractJAXRSFactoryBean.checkResources()" > >> >> >> > >> >> >> > >> >> >> is it OSGi that is getting in the way ? Are you using OSGI by > > any > >> >> >> chance ? > >> >> >> That is the only reason I can think of... > >> >> > > >> >> > The prototype is embedded along with a lot of other code that > is > >> >> > assembled into an EAR with the ATG Dynamo framework. I'm > pretty > >> > sure > >> >> > they're not using OSGi, but the EAR assembly is relatively > >> complex. > >> >> I'm > >> >> > not sure what they could be doing that could possibly mess this > >> up. > >> >> > > >> >> >> If yes then importing javax.ws.rs.* should fix it.... > >> >> > > >> >> > I assume you mean in the Catalog class? I'll try it. > >> >> > > >> >> >> Is it also possible for you to create a simple test project > > where > >> >> you > >> >> >> will > >> >> >> load catalog class and try to get the @Path annotation on a > >> >> >> Catalog.getItems() method, without even CXF being involved ? > >> >> > > >> >> > I'll put that on the list of things to try, but I would be > >> extremely > >> >> > surprised if that displayed any problem. It's likely something > >> > about > >> >> my > >> >> > deployment environment that is causing this. > >> >> > > >> >> >> KARR, DAVID (ATTCINW) wrote: > >> >> >> > > >> >> >> >> -----Original Message----- > >> >> >> >> From: Sergey Beryozkin [mailto:[email protected]] > >> >> >> >> Sent: Tuesday, August 25, 2009 7:18 AM > >> >> >> >> To: [email protected] > >> >> >> >> Subject: RE: getting "NO_RESOURCES_AVAILABLE" from > >> >> >> >> "AbstractJAXRSFactoryBean.checkResources()" > >> >> >> >> > >> >> >> >> > >> >> >> >> Please add breakpoints to > >> >> >> org.apache.cxf.jaxrs.JAXRSServerFactoryBean, > >> >> >> >> its > >> >> >> >> two setServiceBeans(...) methods. > >> > JAXRSServerFactoryBean.create() > >> >> > is > >> >> >> >> called > >> >> >> >> after one of those methods has been called. > >> >> >> > > >> >> >> > It hit "setServiceBeans(Object... beans)" with my one > Catalog > >> >> > object. > >> >> >> > > >> >> >> > In "getCreatedFromModel(Class<?> realClass)", I noted that > >> >> >> > "classResourceInfos" was an empty list, so it returned null. > >> > That > >> >> >> could > >> >> >> > be irrelevant. > >> >> >> > > >> >> >> > Then, in "evaluateResourceClass(ClassResourceInfo cri, > boolean > >> >> >> > enableStatic)", I saw that when it was processing the > > "getItem" > >> >> >> method, > >> >> >> > "AnnotationUtils.getHttpMethodValue(annotatedMethod)" > returned > >> >> null, > >> >> >> so > >> >> >> > it didn't create any class resource info. It also returned > >> null > >> >> > from > >> >> >> > "AnnotationUtils.getMethodAnnotation(annotatedMethod, > >> >> Path.class)". > >> >> >> The > >> >> >> > "getItem()" method has both the "@GET" and "@Path" > annotation. > >> >> >> > > >> >> >> > Why doesn't it think there are any annotations? > >> >> >> > > >> >> >> >> KARR, DAVID (ATTCINW) wrote: > >> >> >> >> > > >> >> >> >> >> -----Original Message----- > >> >> >> >> >> From: Sergey Beryozkin > [mailto:[email protected]] > >> >> >> >> >> Sent: Tuesday, August 25, 2009 3:54 AM > >> >> >> >> >> To: [email protected] > >> >> >> >> >> Subject: RE: getting "NO_RESOURCES_AVAILABLE" from > >> >> >> >> >> "AbstractJAXRSFactoryBean.checkResources()" > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> I've tried this class & beans.xml in the system tests > > area, > >> >> >> Catalog > >> >> >> >> >> class was > >> >> >> >> >> recognized. > >> >> >> >> >> > >> >> >> >> >> Can you please let me know a bit more about the way you > >> load > >> >> the > >> >> >> >> >> (catalog) > >> >> >> >> >> application ? > >> >> >> >> >> Are you using Maven or Ant ? Is it Jetty or Tomcat ? Or > is > >> it > >> >> a > >> >> >> >> >> standalone > >> >> >> >> >> server which explicitly loads the beans.xml ? > >> >> >> >> > > >> >> >> >> > I build the application with Ant. It's deployed to > > WebLogic > >> >> 10. > >> >> >> >> > > >> >> >> >> > Can you point me to some classes or methods that I could > > set > >> >> >> >> breakpoints > >> >> >> >> > in to try to diagnose why it's not processing the Catalog > >> >> class? > >> >> >> >> > > >> >> >> >> >> > >> >> >> >> >> thanks, Sergey > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> KARR, DAVID (ATTCINW) wrote: > >> >> >> >> >> > > >> >> >> >> >> >> -----Original Message----- > >> >> >> >> >> >> From: Sergey Beryozkin > >> [mailto:[email protected]] > >> >> >> >> >> >> Sent: Monday, August 24, 2009 1:13 PM > >> >> >> >> >> >> To: [email protected] > >> >> >> >> >> >> Subject: Re: getting "NO_RESOURCES_AVAILABLE" from > >> >> >> >> >> >> "AbstractJAXRSFactoryBean.checkResources()" > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> Hi > >> >> >> >> >> >> > >> >> >> >> >> >> Everything seems to be ok. > >> >> >> >> >> >> It appears the problem is to do with a missing import > : > >> >> >> >> >> >> > >> >> >> >> >> >> <import resource="classpath:META-INF/cxf/cxf- > extension- > >> >> jaxrs- > >> >> >> >> >> >> binding.xml" /> > >> >> >> >> >> >> > >> >> >> >> >> >> can you add it please to your beans.xml ? > >> >> >> >> >> >> > >> >> >> >> >> >> For some reasons Catalog class is not introspected. > >> > Perhaps > >> >> >> due > >> >> >> >> to > >> >> >> >> >> the > >> >> >> >> >> >> fact > >> >> >> >> >> >> the above import is missing and thus no jaxrs-aware > >> spring > >> >> >> >> factory > >> >> >> >> >> is > >> >> >> >> >> >> invoked > >> >> >> >> >> > > >> >> >> >> >> > Nope, I'm afraid that didn't help. > >> >> >> >> >> > > >> >> >> >> >> > The relevant jars I'm loading are: cxf-2.2.3.jar, > jaxb- > >> api- > >> >> >> >> 2.1.jar, > >> >> >> >> >> > jsr311-api-1.0.jar, spring.jar, and wsdl4j.jar > >> >> >> >> >> > > >> >> >> >> >> > My current XML and Java are this: > >> >> >> >> >> > -----beans.xml------ > >> >> >> >> >> > <?xml version="1.0" encoding="UTF-8"?> > >> >> >> >> >> > <beans > >> xmlns="http://www.springframework.org/schema/beans" > >> >> >> >> >> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >> >> >> >> >> > xmlns:jaxws="http://cxf.apache.org/jaxws" > >> >> >> >> >> > xmlns:jaxrs="http://cxf.apache.org/jaxrs" > >> >> >> >> >> > xmlns:cxf="http://cxf.apache.org/core" > >> >> >> >> >> > xsi:schemaLocation=" > >> >> >> >> >> > http://www.springframework.org/schema/beans > >> >> >> >> >> > > >> > http://www.springframework.org/schema/beans/spring-beans.xsd > >> >> >> >> >> > http://cxf.apache.org/jaxws > >> >> >> >> http://cxf.apache.org/schemas/jaxws.xsd > >> >> >> >> >> > http://cxf.apache.org/jaxrs > >> >> >> >> http://cxf.apache.org/schemas/jaxrs.xsd > >> >> >> >> >> > http://cxf.apache.org/core > >> >> >> > http://cxf.apache.org/schemascore.xsd"> > >> >> >> >> >> > > >> >> >> >> >> > <import > > resource="classpath:META-INF/cxf/cxf.xml" /> > >> >> >> >> >> > <import resource="classpath:META-INF/cxf/cxf- > >> extension- > >> >> >> soap.xml" > >> >> >> >> >> > /> > >> >> >> >> >> > <import > >> >> > resource="classpath:META-INF/cxf/cxf-servlet.xml" > >> >> >> /> > >> >> >> >> >> > <import > >> >> >> >> >> > resource="classpath:META-INF/cxf/cxf-extension-jaxrs- > >> >> >> binding.xml" > >> >> >> >> /> > >> >> >> >> >> > > >> >> >> >> >> > <jaxrs:server name="restcatalogserver" > >> address="/rest"> > >> >> >> >> >> > <jaxrs:features> > >> >> >> >> >> > <cxf:logging/> > >> >> >> >> >> > </jaxrs:features> > >> >> >> >> >> > <jaxrs:serviceBeans> > >> >> >> >> >> > <bean > class="com.att.ecom.catalog.Catalog"/> > >> >> >> >> >> > </jaxrs:serviceBeans> > >> >> >> >> >> > </jaxrs:server> > >> >> >> >> >> > </beans> > >> >> >> >> >> > ------------------------- > >> >> >> >> >> > -----Catalog.java----- > >> >> >> >> >> > package com.att.ecom.catalog; > >> >> >> >> >> > import java.util.ArrayList; > >> >> >> >> >> > import java.util.List; > >> >> >> >> >> > import javax.ws.rs.GET; > >> >> >> >> >> > import javax.ws.rs.Path; > >> >> >> >> >> > import javax.ws.rs.PathParam; > >> >> >> >> >> > import javax.ws.rs.Produces; > >> >> >> >> >> > import javax.xml.bind.annotation.XmlRootElement; > >> >> >> >> >> > > >> >> >> >> >> > @Path("/catalog/") > >> >> >> >> >> > @Produces("application/xml") > >> >> >> >> >> > public class Catalog { > >> >> >> >> >> > @GET > >> >> >> >> >> > @Path("/item/{id}") > >> >> >> >> >> > public Item getItem(@PathParam("id") String id) > > { > >> >> >> >> >> > Item item = new Item(); > >> >> >> >> >> > item.setId(id); > >> >> >> >> >> > item.setTitle("abc"); > >> >> >> >> >> > item.setDescription("def"); > >> >> >> >> >> > return new Item(); > >> >> >> >> >> > } > >> >> >> >> >> > @XmlRootElement(name = "Item") > >> >> >> >> >> > public static class Item { > >> >> >> >> >> > private String id; > >> >> >> >> >> > private String title; > >> >> >> >> >> > private String description; > >> >> >> >> >> > > >> >> >> >> >> > public String getTitle() { return title; > > } > >> >> >> >> >> > public String getId() { return id; } > >> >> >> >> >> > public String getDescription() { return > >> >> > description; > >> >> >> } > >> >> >> >> >> > > >> >> >> >> >> > public void setTitle(String title) { > > this.title > >> >> > = > >> >> >> title; > >> >> >> >> >> > } > >> >> >> >> >> > public void setId(String id) { this.id = > > id; } > >> >> >> >> >> > public void setDescription(String > > description) > >> { > >> >> >> >> >> > this.description = description; } > >> >> >> >> >> > } > >> >> >> >> >> > } > >> >> >> >> >> > -------------------- > >> >> >> >> >> > > >> >> >> >> >> >> KARR, DAVID (ATTCINW) wrote: > >> >> >> >> >> >> > > >> >> >> >> >> >> > I'm trying to set up a simple REST prototype > running > >> >> >> alongside > >> >> >> >> >> some > >> >> >> >> >> >> > other existing code. > >> >> >> >> >> >> > > >> >> >> >> >> >> > When I deploy, I appear to fall into the following > >> "if" > >> >> >> block > >> >> >> >> in > >> >> >> >> >> >> > "AbstractJAXRSFactoryBean.checkResources()": > >> >> >> >> >> >> > > >> >> >> >> >> >> > ----------------- > >> >> >> >> >> >> > if (list.size() == 0) { > >> >> >> >> >> >> > org.apache.cxf.common.i18n.Message msg > = > >> >> >> >> >> >> > new > >> >> >> >> >> >> > > >> >> > org.apache.cxf.common.i18n.Message("NO_RESOURCES_AVAILABLE", > >> >> >> >> >> >> > > >> >> >> > BUNDLE); > >> >> >> >> >> >> > LOG.severe(msg.toString()); > >> >> >> >> >> >> > throw new > >> >> >> >> >> >> > WebApplicationException(Response.Status.NOT_FOUND); > >> >> >> >> >> >> > } > >> >> >> >> >> >> > --------------- > >> >> >> >> >> >> > > >> >> >> >> >> >> > This list would be empty if > >> >> >> >> >> >> "serviceFactory.getRealClassResourceInfo()" > >> >> >> >> >> >> > returned an empty list. What exactly would that > >> >> indicate? > >> >> >> >> >> >> > > >> >> >> >> >> >> > My beans.xml is very simple right now, just: > >> >> >> >> >> >> > ----------------------- > >> >> >> >> >> >> > <?xml version="1.0" encoding="UTF-8"?> > >> >> >> >> >> >> > <beans > >> >> xmlns="http://www.springframework.org/schema/beans" > >> >> >> >> >> >> > > >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >> >> >> >> >> >> > xmlns:jaxws="http://cxf.apache.org/jaxws" > >> >> >> >> >> >> > xmlns:jaxrs="http://cxf.apache.org/jaxrs" > >> >> >> >> >> >> > xsi:schemaLocation=" > >> >> >> >> >> >> > http://www.springframework.org/schema/beans > >> >> >> >> >> >> > > >> >> > http://www.springframework.org/schema/beans/spring-beans.xsd > >> >> >> >> >> >> > http://cxf.apache.org/jaxws > >> >> >> >> >> http://cxf.apache.org/schemas/jaxws.xsd > >> >> >> >> >> >> > http://cxf.apache.org/jaxrs > >> >> >> >> >> > http://cxf.apache.org/schemas/jaxrs.xsd"> > >> >> >> >> >> >> > > >> >> >> >> >> >> > <import > >> > resource="classpath:META-INF/cxf/cxf.xml" /> > >> >> >> >> >> >> > <import resource="classpath:META-INF/cxf/cxf- > >> >> extension- > >> >> >> >> soap.xml" > >> >> >> >> >> >> > /> > >> >> >> >> >> >> > <import > >> >> >> > resource="classpath:META-INF/cxf/cxf-servlet.xml" > >> >> >> >> /> > >> >> >> >> >> >> > > >> >> >> >> >> >> > <jaxrs:server name="restcatalogserver" > >> >> address="/rest"> > >> >> >> >> >> >> > <jaxrs:serviceBeans> > >> >> >> >> >> >> > <bean > >> class="com.att.ecom.catalog.Catalog"/> > >> >> >> >> >> >> > </jaxrs:serviceBeans> > >> >> >> >> >> >> > </jaxrs:server> > >> >> >> >> >> >> > </beans> > >> >> >> >> >> >> > -------------------- > >> >> >> >> >> >> > > >> >> >> >> >> >> > The "Catalog" class is also very primitive so far: > >> >> >> >> >> >> > -------------------------- > >> >> >> >> >> >> > package com.att.ecom.catalog; > >> >> >> >> >> >> > > >> >> >> >> >> >> > import java.util.ArrayList; > >> >> >> >> >> >> > import java.util.List; > >> >> >> >> >> >> > > >> >> >> >> >> >> > import javax.ws.rs.GET; > >> >> >> >> >> >> > import javax.ws.rs.Path; > >> >> >> >> >> >> > import javax.ws.rs.Produces; > >> >> >> >> >> >> > > >> >> >> >> >> >> > @Path("/catalog/") > >> >> >> >> >> >> > @Produces("application/xml") > >> >> >> >> >> >> > public class Catalog { > >> >> >> >> >> >> > > >> >> >> >> >> >> > @GET > >> >> >> >> >> >> > @Path("/items") > >> >> >> >> >> >> > public List<Item> getItems() { > >> >> >> >> >> >> > ArrayList<Item> result = new > >> >> >> >> ArrayList<Item>(); > >> >> >> >> >> >> > result.add(new Item()); > >> >> >> >> >> >> > return (result); > >> >> >> >> >> >> > } > >> >> >> >> >> >> > > >> >> >> >> >> >> > public static class Item { > >> >> >> >> >> >> > private String title; > >> >> >> >> >> >> > private String description; > >> >> >> >> >> >> > > >> >> >> >> >> >> > public String getTitle() { return title; > >> > } > >> >> >> >> >> >> > public String getDescription() { return > >> >> >> > description; > >> >> >> >> } > >> >> >> >> >> >> > > >> >> >> >> >> >> > public void setTitle(String title) { > >> > this.title > >> >> >> > = > >> >> >> >> title; > >> >> >> >> >> >> > } > >> >> >> >> >> >> > public void setDescription(String > >> > description) > >> >> { > >> >> >> >> >> >> > this.description = description; } > >> >> >> >> >> >> > } > >> >> >> >> >> >> > } > >> >> >> >> >> >> > ---------------------------- > >> >> >> >> >> >> > > >> >> >> >> >> >> > > >> >> >> >> >> >> > >> >> >> >> >> >> -- > >> >> >> >> >> >> View this message in context: > >> >> http://www.nabble.com/getting- > >> >> >> >> >> >> %22NO_RESOURCES_AVAILABLE%22-from- > >> >> >> >> >> >> %22AbstractJAXRSFactoryBean.checkResources%28%29%22- > >> >> >> >> >> >> tp25120790p25123056.html > >> >> >> >> >> >> Sent from the cxf-user mailing list archive at > >> Nabble.com. > >> >> >> >> >> > > >> >> >> >> >> > > >> >> >> >> >> > > >> >> >> >> >> > >> >> >> >> >> -- > >> >> >> >> >> View this message in context: > >> http://www.nabble.com/getting- > >> >> >> >> >> %22NO_RESOURCES_AVAILABLE%22-from- > >> >> >> >> >> %22AbstractJAXRSFactoryBean.checkResources%28%29%22- > >> >> >> >> >> tp25120790p25132223.html > >> >> >> >> >> Sent from the cxf-user mailing list archive at > Nabble.com. > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > >> >> >> >> -- > >> >> >> >> View this message in context: > http://www.nabble.com/getting- > >> >> >> >> %22NO_RESOURCES_AVAILABLE%22-from- > >> >> >> >> %22AbstractJAXRSFactoryBean.checkResources%28%29%22- > >> >> >> >> tp25120790p25135192.html > >> >> >> >> Sent from the cxf-user mailing list archive at Nabble.com. > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > >> >> >> -- > >> >> >> View this message in context: http://www.nabble.com/getting- > >> >> >> %22NO_RESOURCES_AVAILABLE%22-from- > >> >> >> %22AbstractJAXRSFactoryBean.checkResources%28%29%22- > >> >> >> tp25120790p25138372.html > >> >> >> Sent from the cxf-user mailing list archive at Nabble.com. > >> >> > > >> >> > > >> >> > > >> >> > >> >> -- > >> >> View this message in context: http://www.nabble.com/getting- > >> >> %22NO_RESOURCES_AVAILABLE%22-from- > >> >> %22AbstractJAXRSFactoryBean.checkResources%28%29%22- > >> >> tp25120790p25141130.html > >> >> Sent from the cxf-user mailing list archive at Nabble.com. > >> > > >> > > >> > > >> > >> -- > >> View this message in context: http://www.nabble.com/getting- > >> %22NO_RESOURCES_AVAILABLE%22-from- > >> %22AbstractJAXRSFactoryBean.checkResources%28%29%22- > >> tp25120790p25149335.html > >> Sent from the cxf-user mailing list archive at Nabble.com. > >
