gpt4 book ai didi

java - JAXB 注释 RootElement

转载 作者:行者123 更新时间:2023-11-30 11:44:19 25 4
gpt4 key购买 nike

我有以下 POJO ,根元素没有显示在 xml 文件中(通过 SOAP jax-ws 调用发送),有人可以指出问题吗?

@XmlRootElement(name = "CATALOGUE")
@XmlAccessorType( XmlAccessType.FIELD )
public class Catalogue implements Serializable, Comparable<Catalogue>
{

@XmlTransient
private Integer catalogueId;

@XmlElement( name = "COMMENT", required = false, nillable = false )
private String catalogueComment;

@XmlElement( name = "VERSION", required = false, nillable = false )
private String catalogueVersion;

@XmlElement( name = "VALID_FROM_DTS", required = false, nillable = false )
private Date catalogueValidFromDts;

@XmlElement( name = "CREATED_DTS", required = false, nillable = false )
private Date catalogueCreatedDts;

@XmlElementWrapper(name = "ITEMLIST")
@XmlElement(name = "ITEM")
private List<Item> itemList;

@XmlTransient
private Integer catalogueLifecyclePhase;

@XmlTransient
private Integer ownerId;

xml文件看起来像

            <COMMENT>LK</COMMENT>
<VERSION>4</VERSION>
<VALID_FROM_DTS>1990-01-25T00:00:00Z</VALID_FROM_DTS>
<CREATED_DTS>2012-05-14T15:49:38.655+01:00</CREATED_DTS>
<ITEMLIST>
<ITEM>
<NAME>Adult Period Pass Corsham</NAME>
<DESC>1 week</DESC>
<SKU>ACT-38</SKU>
<PRICE>15</PRICE>
<CATEGORIES>
<CATEGORY>
<CategoryName>Product</CategoryName>
<CategoryDate>1 week</CategoryDate>
<CategorySortOrder>0</CategorySortOrder>
</CATEGORY>
<CATEGORY>
<CategoryName>Product Type</CategoryName>
<CategoryDate>Coach</CategoryDate>
<CategorySortOrder>0</CategorySortOrder>
</CATEGORY>
.....................

我希望是这样的

         <CATALOGUE>     <-----------missing!!!
<COMMENT>LK</COMMENT>
<VERSION>4</VERSION>
<VALID_FROM_DTS>1990-01-25T00:00:00Z</VALID_FROM_DTS>
<CREATED_DTS>2012-05-14T15:49:38.655+01:00</CREATED_DTS>
<ITEMLIST>
<ITEM>
<NAME>Adult Period Pass Corsham</NAME>
<DESC>1 week</DESC>
<SKU>ACT-38</SKU>
<PRICE>15</PRICE>
<CATEGORIES>
<CATEGORY>
<CategoryName>Product</CategoryName>
<CategoryDate>1 week</CategoryDate>
<CategorySortOrder>0</CategorySortOrder>
</CATEGORY>
<CATEGORY>
<CategoryName>Product Type</CategoryName>
<CategoryDate>Coach</CategoryDate>
<CategorySortOrder>0</CategorySortOrder>
</CATEGORY>
.....................
</CATALOGUE>

用于返回对象的代码是

@Stateless
@Remote
@WebService
public class CatalogueManagerSoapService
{

public CatalogueManagerSoapService()
{
// TODO Auto-generated constructor stub
}

@EJB
private SOAPExportService userService;


@WebMethod
public Catalogue getLatestCatalogue(
String username,
String password,
String catalogueName ) throws Exception
{
Catalogue c = CatManager.getCatalogue();
return c;
}

}

最佳答案

回答我自己的问题

这是 JAX-WS (JRS181) @WebResult 的默认实现

@Retention(value=RetentionPolicy.RUNTIME)
@Target({METHOD})
public @interface WebResult {

String name() default "return";
String targetNamespace() default "";
boolean header() default false;
String partName() default "";
}

如您所见,“return”是默认的。更改为@WebResult( name = "CATALOGUE") 解决了问题

关于java - JAXB 注释 RootElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10808125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com