2017-07-20 8 views
0

私はJavaでSOAP Webサービスを構築しようとしています。私の方法の一つ石鹸で入力パラメータは私のJavaクラスのJaxbマッピングanytype

<s:element name="GetDocumentInfo"> 
<s:complexType> 
<s:sequence> 
<s:element minOccurs="0" maxOccurs="1" name="pPassword" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="xmlDoc"> 
<s:complexType mixed="true"> 
<s:sequence> 
<s:any/> 
</s:sequence> 
</s:complexType> 
</s:element> 
</s:sequence> 
</s:complexType> 
</s:element> 

をする必要があります私は場合は、WSDL出力

<xs:complexType name="GetDocumentInfo"> 
<xs:sequence> 
<xs:element minOccurs="0" name="password" type="xs:string"/> 
<xs:element maxOccurs="unbounded" minOccurs="0" name="doc" type="xs:anyType"/> 
</xs:sequence> 
</xs:complexType> 

を生産しているJava変数

@XmlElement(name = "password") 
private java.lang.String password; 
@XmlElement(name = "doc") 
private java.util.List<java.lang.Object> doc; 

にそれをマッピングしていますオブジェクトを使用するJAXBマーシャリングエラーが発生します。どのようなdoc変数の型にする必要がありますか?彼らは、彼らが次のエラーを取得するWSDLインポートするとき

SOAPクライアントは、一般的なプログラム(.NET)であると:タイプの

オブジェクト「をSystem.Xml.XmlDocumentの」「のSystem.Object型に変換することができません[ ] '

私はjaxbに慣れていません。

XmlとXmlDocumentの変数を使用してクラスを作成する必要がありますか?どのようなXmlDocument変数型にする必要がありますか?

+0

私はそれを考え出しました。私はリスト・パラメータを持つジェネリック・ドキュメント・クラスを作成する必要がありました。 – shadab

答えて

0

ここに、含まれる必要のあるクラスの詳細があります。

public class doc<T> { 

@XmlMixed 
@XmlAnyElement(lax = true) 
protected List<T> content; 

public List<T> getContent() { 
    if (content == null) { 
     content = new ArrayList<T>(); 
    } 
    return this.content; 
} 

public void setContent() { 
    content = this.content; 
} 

}