Java SOAP对象返回空值
我有一些简单的对象,它们之间有关系。一切正常,但当我为SOAP请求发布对象时,当我设置客户端和cartrack之间的关系时,它返回null。我做错了什么 这是我的密码:Java SOAP对象返回空值,java,soap,entity,one-to-many,many-to-one,Java,Soap,Entity,One To Many,Many To One,我有一些简单的对象,它们之间有关系。一切正常,但当我为SOAP请求发布对象时,当我设置客户端和cartrack之间的关系时,它返回null。我做错了什么 这是我的密码: @Entity public class Client extends User implements Serializable { @Temporal(javax.persistence.TemporalType.DATE) private Date birthdate; private String
@Entity
public class Client extends User implements Serializable {
@Temporal(javax.persistence.TemporalType.DATE)
private Date birthdate;
private String address;
private String zipcode;
private String city;
private String phone;
private String info;
private boolean active;
@OneToMany( cascade = CascadeType.ALL,
fetch = FetchType.EAGER,
targetEntity = Cartrack.class,
mappedBy = "client"
)
private List<Cartrack> cartracks;
/**
* @return the birthdate
*/
public Date getBirthdate() {
return birthdate;
}
/**
* @param birthdate the birthdate to set
*/
public void setBirthdate(Date birthdate) {
this.birthdate = birthdate;
}
/**
* @return the address
*/
public String getAddress() {
return address;
}
/**
* @param address the address to set
*/
public void setAddress(String address) {
this.address = address;
}
/**
* @return the zipcode
*/
public String getZipcode() {
return zipcode;
}
/**
* @param zipcode the zipcode to set
*/
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
/**
* @return the city
*/
public String getCity() {
return city;
}
/**
* @param city the city to set
*/
public void setCity(String city) {
this.city = city;
}
/**
* @return the phone
*/
public String getPhone() {
return phone;
}
/**
* @param phone the phone to set
*/
public void setPhone(String phone) {
this.phone = phone;
}
/**
* @return the info
*/
public String getInfo() {
return info;
}
/**
* @param info the info to set
*/
public void setInfo(String info) {
this.info = info;
}
public String dateToString(){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(this.birthdate);
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public List<Cartrack> getCartracks() {
return cartracks;
}
public void setCartracks(List<Cartrack> cartracks) {
this.cartracks = cartracks;
}
}
@Entity
public class Cartrack implements Serializable {
@Id
private String id;
@OneToOne( mappedBy = "cartrack",
targetEntity = Vehicle.class,
cascade = CascadeType.ALL,
fetch = FetchType.EAGER
)
private Vehicle vehicle;
@ManyToOne(targetEntity = Client.class)
private Client client;
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @return the vehicle
*/
public Vehicle getVehicle() {
return vehicle;
}
/**
* @param vehicle the vehicle to set
*/
public void setVehicle(Vehicle vehicle) {
this.vehicle = vehicle;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Cartrack)) {
return false;
}
return ((Cartrack) obj).id == this.id;
}
public Client getClient() {
return client;
}
public void setClient(Client client) {
this.client = client;
}
}
@Entity
public class Vehicle implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String licenseNr;
private boolean stolen;
@OneToOne(targetEntity = Cartrack.class)
private Cartrack cartrack;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
/**
* @return the licenseNr
*/
public String getLicenseNr() {
return licenseNr;
}
/**
* @param licenseNr the licenseNr to set
*/
public void setLicenseNr(String licenseNr) {
this.licenseNr = licenseNr;
}
/**
* @return the stolen
*/
public boolean isStolen() {
return stolen;
}
/**
* @param stolen the stolen to set
*/
public void setStolen(boolean stolen) {
this.stolen = stolen;
}
/**
* @return the cartrack
*/
public Cartrack getCartrack() {
return cartrack;
}
/**
* @param cartrack the cartrack to set
*/
public void setCartrack(Cartrack cartrack) {
this.cartrack = cartrack;
}
}
@实体
公共类客户端扩展用户实现可序列化{
@时态(javax.persistence.TemporalType.DATE)
私人生日;
私有字符串地址;
私有字符串zipcode;
私人城市;
私人电话;
私有字符串信息;
私有布尔活动;
@OneToMany(级联=级联类型.ALL,
fetch=FetchType.EAGER,
targetEntity=Cartrack.class,
mappedBy=“客户端”
)
私人名单行李架;
/**
*@返回生日
*/
公共日期getBirthdate(){
返回出生日期;
}
/**
*@param birthdate要设置的生日
*/
公共无效设置出生日期(日期出生日期){
this.birthdate=生日;
}
/**
*@返回地址
*/
公共字符串getAddress(){
回信地址;
}
/**
*@param address要设置的地址
*/
公共无效设置地址(字符串地址){
this.address=地址;
}
/**
*@返回zipcode
*/
公共字符串getZipcode(){
返回zipcode;
}
/**
*@param zipcode要设置的zipcode
*/
public void setZipcode(字符串zipcode){
this.zipcode=zipcode;
}
/**
*@返回城市
*/
公共字符串getCity(){
回归城市;
}
/**
*@param city要设置的城市
*/
公共城市(字符串城市){
this.city=城市;
}
/**
*@还电话
*/
公共字符串getPhone(){
回电话;
}
/**
*@param phone要设置的电话
*/
公用无效设置电话(字符串电话){
this.phone=电话;
}
/**
*@返回信息
*/
公共字符串getInfo(){
退货信息;
}
/**
*@param info要设置的信息
*/
公共void setInfo(字符串信息){
this.info=info;
}
公共字符串dateToString(){
SimpleDataFormat格式化程序=新的SimpleDataFormat(“yyyy-MM-dd”);
返回formatter.format(this.birthdate);
}
公共布尔isActive(){
主动返回;
}
public void setActive(布尔激活){
这个.active=active;
}
公共列表getCartracks(){
返回行李架;
}
公共无效设置货架(列出货架){
this.cartracks=cartracks;
}
}
@实体
公共类Cartrack实现了可序列化{
@身份证
私有字符串id;
@OneTONE(mappedBy=“cartrack”,
目标实体=车辆等级,
cascade=CascadeType.ALL,
fetch=FetchType.EAGER
)
私家车;
@manytone(targetEntity=Client.class)
私人客户;
/**
*@返回id
*/
公共字符串getId(){
返回id;
}
/**
*@param id要设置的id
*/
公共无效集合id(字符串id){
this.id=id;
}
/**
*@还车
*/
公共车辆{
返回车辆;
}
/**
*@param vehicle要设置的车辆
*/
公共车辆(车辆){
本车=车辆;
}
@凌驾
公共布尔等于(对象obj){
如果(!(车载支架的obj实例)){
返回false;
}
return((Cartrack)obj).id==this.id;
}
公共客户端getClient(){
返回客户;
}
公共void setClient(客户端){
this.client=client;
}
}
@实体
公共类车辆实现可序列化{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
私人字符串许可证持有人;
私家车被盗;
@OneToOne(targetEntity=Cartrack.class)
私人马车;
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
/**
*@返回许可证持有人
*/
公共字符串getLicenseNr(){
返回许可证持有人;
}
/**
*@param licenseNr要设置的licenseNr
*/
公共无效setLicenseNr(字符串licenseNr){
this.licenseNr=licenseNr;
}
/**
*@归还被盗物品
*/
公共布尔值isStolen(){
归还被盗物品;
}
/**
*@param把偷来的东西偷走了
*/
公共无效设置(布尔值被盗){
这是偷来的;
}
/**
*@返回行李架
*/
公共Cartrack getCartrack(){
返回行李架;
}
/**
*@param cartrack要设置的cartrack
*/
公共无效设置Cartrack(Cartrack Cartrack){
this.cartrack=cartrack;
}
}
您所说的“为SOAP请求发布我的对象”是什么意思?我找不到任何与SOAP相关的代码…我得到了一个SOAP web服务,它检索一个客户端。正如您所看到的,客户机对象与cartrack有关系。当客户端与任何cartrack没有关系时,soap web服务将返回用户对象。但是,当客户端有一些Cartrack时,soap web服务返回null。