Good Day Community,
我有一个关于java中castor解组的问题。如前所述,我正在使用castor对包含字节数组(byte[])的web服务响应进行反编组。.. 请参考以下内容:
public class ViewReportResponse {
private String reportId;
private byte[] report;
//getters and setters here ...
我以前使用castor来解组web服务响应,但不可否认,之前的响应总是字符串。问题在于返回的字节数组,因为我认为castor阻塞了对它的解组。
我的蓖麻映射文件如下:
<class name="com.domain.reporting.client.service.ViewReportResponse">
<map-to xml="viewReportResponse"
xsi:schemaLocation="http://domain.com/schemas/reportingService/generateReport"
ns-uri="http://domain.com/schemas/reportingService/generateReport"
ns-prefix="ns2" />
<field name="reportId">
<bind-xml name="reportId"
node="element"
type="string"/>
</field>
<field name="report">
<bind-xml name="report"
node="element"
type="bytes" />
</field>
我不确定我错过了什么,但是收到了消息,但是在解组时失败了。
我在下面附上了一个错误的剪辑。
org.springframework.oxm.UnmarshallingFailureException: Castor unmarshalling exception; nested exception is org.exolab.castor.xml.MarshalException: unable to find FieldDescriptor for 'report' in ClassDescriptor of viewReportResponse.
请给予任何帮助是非常感激的。感谢好心的
已解决:
一般的问题不在于与byte[]之间的映射。该问题与本例中名称空间的使用有关。
<field name="reportId">
<bind-xml name="ns:reportId" xmlns:ns="http://domain.com/schemas/reportingService/generateReport"
node="element"
type="string"/>
<field name="report">
<bind-xml name="ns:report" xmlns:ns="http://domain.com/schemas/reportingService/generateReport"
node="element"
type="bytes"/>
此帖现已有效解决并关闭。