[ https://issues.apache.org/jira/browse/CXF-3722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290577#comment-13290577 ]
Greg Holmberg commented on CXF-3722: ------------------------------------ I tried to do something similar with JAX-RS and JAXB. I found myself writing the same CRUD service code (create, get/query, update, delete) over and over again, for one POJO and then another. The code was nearly identical in each case. I thought, what a waste of time--I should write a generic CRUD service, and then instantiate it for each POJO. For example: @XmlType public interface NamedObject { @XmlAttribute public String getName(); } abstract class NamedObjectService<NamedObjectType extends NamedObject> { @PUT @Consumes("application/xml") public Response create(NamedObjectType object) { ... } } @XmlRootElement public class MyPOJO implements NamedObject { ... } @Path("/myservice") public class MyService extends NamedObjectService<MyPOJO> { ... } I wrote a proxy-based client (i.e. using the magic CGLib), and when I called MyService.create(), I got this exception: Caused by: org.apache.cxf.jaxrs.client.ClientWebApplicationException: .No message body writer has been found for class : interface com.blah.NamedObject, ContentType : application/xml;charset=utf-8. at org.apache.cxf.jaxrs.client.AbstractClient.reportMessageHandlerProblem(AbstractClient.java:611) at org.apache.cxf.jaxrs.client.AbstractClient.writeBody(AbstractClient.java:409) at org.apache.cxf.jaxrs.client.ClientProxyImpl$BodyWriter.handleMessage(ClientProxyImpl.java:640) So it didn't find the JAXB code to marshall MyPOJO. It's a shame. It would save me so much time if I didn't have to copy and paste this code for each CRUD service. I don't know if this is an issue for JAX-RS or for JAXB, but would it be possible to support this in CXF? Thanks, Greg > Generic interface and Implementation > ------------------------------------ > > Key: CXF-3722 > URL: https://issues.apache.org/jira/browse/CXF-3722 > Project: CXF > Issue Type: Bug > Affects Versions: 2.2 > Environment: CXF 2.2.6 > JAVA 6 > Windows XP > Tomcat 6 > Code First > Reporter: Deboschère Tony > Assignee: Daniel Kulp > Priority: Minor > Fix For: Invalid > > > I ve createad a Generic interface, let say IGenericInterface<TYPE extends > MyAbstracTypeOne, TYPE2 extends MyAbstractTypeTwo> > In this interface are some méthode like : > public TYPE getTypeFromType2(TYPE2); > In another interface I extends IGenericInterface > and add some specific methods > ex : > @WebService > ISpecificInterface extends IgenericInterface<MySubTypeOne, MySubTypeTwo> { > @WebMethod > public MySubTypeOne getTest(); > } > When I implement ISpecificInterface in an implementation class, then add the > @Webservice @WebResult and other @WebParam and launch my server > I do see a web service with two methods in the wsdl > getTest and getTypeFromType2. > But the second method returns xml corresponding to the abstractType > MyAbstracTypeOne and not MySubTypeOne > PS : I launch the webservice serverside via : > Object webServiceImpl = webServiceClass.newInstance(); > Endpoint endpoint = Endpoint.create(webServiceImpl); > endpoint.publish("/" + name); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira