Я новичок в веб-сервисах и в настоящее время пытаюсь настроить Restlet на Apache Karaf. My Core bundle запускает компонент с протоколом HTTP. And Port: 8081.Не получать данные в ответ на JAXBRepresentation в restlet
Я создал компонент, в котором используется HTTP-протокол и номер порта, настроенный через свойство.
Приложения прилагаются по умолчанию в качестве хоста
wsComponent.getDefaultHost().attach(restletApp.getURI(),restletApp);
В выше функция getURI возвращает URL, к которому приложение прилагается.
Я пытаюсь использовать JaxbRepresentation, чтобы получить детали. Класс ресурсов сервера выглядит следующим образом:
@Get
public Representation getAllUsers()
{
List<MyUser> allUsers = MyFactory.getInstance().getAllUsers();
MyUserListXML userListXML = new MyUserListXML(MyUserConverter.convertMyUserList(allUsers));
JaxbRepresentation<MyUserListXML> userReps = new JaxbRepresentation<MyUserListXML>(userListXML);
userReps.setFormattedOutput(true);
return userReps;
}
MyUserListXML.java:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder={"user"})
@XmlRootElement(name="myUsers")
public class MyUserListXML implements Serializable
{
private static final long serialVersionUID = 1L;
@XmlElement(name="user")
private List<MyUserXML> userList;
public MyUserListXML()
{
// Default Constructor
}
/**
* @param userList
*/
public MyUserListXML(List<MyUserXML> userList)
{
this.userList = userList;
}
/**
* @return the userList
*/
public List<MyUserXML> getUserList()
{
return userList;
}
/**
* @param userList the userList to set
*/
public void setUserList(List<MyUserXML> userList)
{
this.userList = userList;
}
}
MyUserXML.java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {"id","userName","status","displayName","email"})
@XmlRootElement(name = "esmfUser")
public class MyUserXML implements Serializable
{
private static final long serialVersionUID = 1L;
@XmlElement(name= "id", required=true,type=Integer.class)
private Integer userId;
@XmlElement(required=true)
private String userName;
@XmlElement(name="status",required=true)
private String userStatus;
@XmlElement(required=true)
private String displayName;
@XmlElement(required=true)
private String email;
public MyUserXML()
{
// default constructor.
}
/**
* @param userId
* @param userName
* @param userStatus
* @param displayName
* @param email
*/
public MyUserXML(Integer userId, String userName, String userStatus, String displayName, String email)
{
this.userId = userId;
this.userName = userName;
this.userStatus = userStatus;
this.displayName = displayName;
this.email = email;
}
/**
* @return the userId
*/
public Integer getUserId()
{
return userId;
}
/**
* @param userId the userId to set
*/
public void setUserId(Integer userId)
{
this.userId = userId;
}
/**
* @return the userName
*/
public String getUserName()
{
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName)
{
this.userName = userName;
}
/**
* @return the userStatus
*/
public String getUserStatus()
{
return userStatus;
}
/**
* @param userStatus the userStatus to set
*/
public void setUserStatus(String userStatus)
{
this.userStatus = userStatus;
}
/**
* @return the displayName
*/
public String getDisplayName()
{
return displayName;
}
/**
* @param displayName the displayName to set
*/
public void setDisplayName(String displayName)
{
this.displayName = displayName;
}
/**
* @return the email
*/
public String getEmail()
{
return email;
}
/**
* @param email the email to set
*/
public void setEmail(String email)
{
this.email = email;
}
}
При тестировании с помощью SoapUI я получаю следующий запрос и ответ
Запрос:
GET http://localhost:8081/ws/users HTTP/1.1
Accept-Encoding: gzip,deflate
Host: localhost:8081
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Ответ:
HTTP/1.1 200 OK
Content-encoding: gzip, zip, deflate
Server: Restlet-Framework/2.3.5
Date: Sun, 15 Nov 2015 09:29:31 GMT
Transfer-encoding: chunked
Content-type: application/xml; charset=UTF-8
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
Accept-ranges: bytes
Я не знаю, почему я не получаю данные XML из. Может ли кто-нибудь помочь мне или вести меня, что я делаю неправильно.
Restlet версия: 2.3.5