我在 WebLogic 12c(使用OpenJPA 2.1.0)中运行我的 Web 服务时遇到问题。Web 服务的响应是具有特定实体列表的 DTO。执行服务后,无法生成其响应(没有任何错误或异常)。我认为 MOXy 在响应实体的解组操作过程中存在问题(我在 WebLogic 11 中没有任何问题,因为它不使用 MOXy)。您如何看待这个问题和解决方案?
谢谢
Web 服务在 GlassFish 3.1.2 中运行良好。
这是我的代码:
个人实体
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "person")
@Entity
@Table(name = "PERSON")
public class Person {
@Id
@Column(name = "ID")
@XmlElement(required = false)
private Long id;
@Column(name = "BIRTHDATE")
@XmlElement(required = false)
@Temporal(TemporalType.DATE)
private Date birthDate;
@Transient
private String name;
个人 DTO
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "personDto")
public class PersonDto implements Serializable{
@XmlElement(required = false)
List<Person> persons;
/**
* list of person
*
* @return
*/
public List<Person> getPersons() {
if (persons == null)
persons = new LinkedList<Person>();
return persons;
}
public void setpersons(List<Person> persons) {
this.persons = persons;
}
道
@Stateless
public class PersonDaoImpl implements PersonDao{
@PersistenceContext(unitName = "pu-test")
private EntityManager em;
public List<Person> findAll() {
List<Person> personList = null;
Query query = em.createNamedQuery("person.findAll");
List<Person> results = (List<Person>)query.getResultList();
return results;
}
orm.xml
<named-query name="person.findAll">
<query>select p from Person p</query>
</named-query>
网络服务
@Stateless
@WebService
public class PersonServiceImpl implements IPersonService {
@EJB
private PersonDao personDao;
public PersonDto allPersons() {
PersonDto result = new PersonDto();
List<Person> fList = personDao.findAll();
result.setPersons(fList);
return result;
}
该列表的大小为 3,但没有响应。