Я пытаюсь реализовать веб-сервис SOAP, и я сгенерировал заглушки с помощью CXF.Однако, когда я пытаюсь вызвать веб-сервис, я получаю сообщение об ошибке:
com.sun.xml.internal.bind.v2.ClassFactory Не найден конструктор по умолчанию для класса javax.activation.DataHandlerjava.lang.NoSuchMethodException: javax.activation.DataHandler. ()
Я посмотрел в XSD для файла WSDL и вот что я нашел:
<xs:complexType name="EDMSFile">
<xs:sequence>
<xs:element name="name" type="xs:string"></xs:element>
<xs:element xmlns:ns1="http://www.w3.org/2005/05/xmlmime" name="contentAsMTOM" ns1:expectedContentTypes="application/octet-stream" type="xs:base64Binary" minOccurs="0"></xs:element>
<xs:element name="contentAsBase64" type="xs:base64Binary" minOccurs="0"></xs:element>
<xs:element name="format" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
, а вВ сгенерированной заглушке EDMSFile.java (приведенной ниже) я вижу, что contentAsMTOM имеет тип DataHandler, а в XSD (выше) он имеет тип xs: base64Binary.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "EDMSFile", propOrder = {
"name",
"contentAsMTOM",
"contentAsBase64",
"format"
})
public class EDMSFile {
@XmlElement(required = true)
protected String name;
@XmlMimeType("application/octet-stream")
protected DataHandler contentAsMTOM;
protected byte[] contentAsBase64;
@XmlElement(required = true)
protected String format;
public String getName() {
return name;
}
public void setName(String value) {
this.name = value;
}
public DataHandler getContentAsMTOM() {
return contentAsMTOM;
}
public void setContentAsMTOM(DataHandler value) {
this.contentAsMTOM = value;
}
public byte[] getContentAsBase64() {
return contentAsBase64;
}
public void setContentAsBase64(byte[] value) {
this.contentAsBase64 = value;
}
public String getFormat() {
return format;
}
public void setFormat(String value) {
this.format = value;
}
}
Может ли это быть причинойконфликт?Я также знаю, что, чтобы исправить это, мне, возможно, придется написать собственный XMLAdapter.Но я ничего не понимаю о своем следующем шаге, так как я очень новичок в этом.Любая помощь приветствуется.
Заранее спасибо