I am getting the following error and I tried all options. I remember
that similar code was working few months back without any custom
Serializers
 
1) Error in log
=========
----------------------------
ID: 1
Address: /xxxapi/xxxRestService/patientmatch/3/contacts/1
Encoding:
Content-Type:
Headers: {connection=[keep-alive], host=[localhost:8080],
user-agent=[Java/1.5.0_14], Content-Type=[null], Accept=[text/html,
Payload:
--------------------------------------
Oct 28, 2009 9:25:04 PM
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor
writeResponseErrorMessage
WARNING: .No message body writer found for response class :
UserContactResponse.
Oct 28, 2009 9:25:04 PM
org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
INFO: Outbound Message
---------------------------
ID: 1
Encoding:
Content-Type: text/xml
Headers: {Date=[Thu, 29 Oct 2009 04:25:04 GMT]}
Payload: .No message body writer found for response class :
UserContactResponse.
--------------------------------------
 
2) Interface class
package com.xxx.ws.rest;
 
import java.util.List;
 
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.PathSegment;
 
import com.xxx.ws.soap.PatientMatchResp;
import com.xxx.ws.soap.UserContactResponse;
 
@Path("/patientmatch/")
 
@Consumes( {  "application/xml" })
@Produces( {  "application/xml" })
public interface XXXService {
 
 
 
   @GET
     @Path("/{userid}/contacts/{contactId}")
     public UserContactResponse getContact(@PathParam("userid")
     String userGuid, @PathParam("contactId")
     String contactId);
}
 
3) Impl class
 
 
@WebService(endpointInterface = "com.xxx.ws.rest.XXXService",
serviceName = "/")
public class XXXServiceImpl implements XXXService {
 
 private static Logger log = Logger.getLogger(XXXServiceImpl .class);
 
public UserContactResponse getContact(String userid, String contactId) {
  // TODO Auto-generated method stub
  UserContactResponse ucr = new UserContactResponse();
  UserContact uc = new UserContact();
  uc.setCity("fremont");
  uc.setActive(true);
  uc.setAptNumber("11");
  uc.setChkPmtToCo(true);
  uc.setCompany("fff");
  ucr.setUserContact(uc);
  return ucr;
 }
  
}
 
4) UserContactResponse (this contains UserContact which has few String
and Long fieds. Thats all. No arrays or List)
 
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
 
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "UserContactResponse", propOrder = { "userContact"
})
public class UserContactResponse {
 
 @XmlElement(name = "UserContact", required = true)
 UserContact userContact;
 
 public UserContact getUserContact() {
  return userContact;
 }
 
 public void setUserContact(UserContact userContact) {
  this.userContact = userContact;
 }
 

 }

 
4) cxf-bean.xml file
<jaxws:endpoint 

id="XXXService" 

implementor="com.xxx.ws.soap.XXXServiceImpl" 

address="/XXXService"/>

<bean id="xxxRestService" class="com.xxx.ws.rest.XXXServiceImpl" />

<jaxrs:server id="restServices" address="/xxxRestService">

<jaxrs:serviceBeans> 

<ref bean="xxxRestService" />

</jaxrs:serviceBeans>

</jaxrs:server>

 

Regards

Karuna Pydipati

StubHub/eBay - Platform & Services

Phone: (415)222-8752

Email: [email protected] <mailto:[email protected]> 

 

 

Reply via email to