I am using Springs 3.0 with JAXB.. I am trying to retrieve a list of IDs through Webservice.. The WSDL is published properly.. But when I hit a SOAP request, I get a response which says:
No adapter for endpoint [public wsi.deviceprofile.GetDeviceProfileIDsResponse wsi.deviceprofile.DeviceProfileEndPoint.getDeviceProfileIDList()]: Is your endpoint annotated with @Endpoint, or does it implement a supported interface like MessageHandler or PayloadEndpoint?
My class is annotated with @EndPoint:
@Endpoint
public class DeviceProfileEndPoint implements DeviceProfileConstants {
@Autowired
private DeviceProfileManager deviceProfileManager;
@PayloadRoot(localPart="GetDeviceProfileIDsRequest", namespace=NAMESPACE)
@ResponsePayload
public GetDeviceProfileIDsResponse getDeviceProfileIDList(){
ObjectFactory factory = new ObjectFactory();
GetDeviceProfileIDsResponse response = factory.createGetDeviceProfileIDsResponse();
List<DeviceProfileWebVO> deviceProfiles = deviceProfileManager.getAllDeviceProfileWebVO();
for(DeviceProfileWebVO deviceProfile : deviceProfiles)
response.id.add(BigInteger.valueOf(deviceProfile.getDeviceId()));
return response;
}
}
Few websites say this might be a problem with the XSD structure and have suggested few guidelines (like, defining the request/response elements inline rather than a reference).. I have ensured that those have been taken care of. However, The problem remains. Here is my XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://www.hp.com/schema/m2m/" xmlns:tns="http://www.hp.com/schema/m2m/">
<!--
Get list of all the Device Profile IDs
-->
<xs:element name="GetDeviceProfileIDsRequest">
</xs:element>
<xs:element name="GetDeviceProfileIDsResponse">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="id" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Does anyone know any other possible reasons? Let me know if you need more details.