Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web服务方法结果的类是什么?_Java_Web Services_Wsdl - Fatal编程技术网

Java Web服务方法结果的类是什么?

Java Web服务方法结果的类是什么?,java,web-services,wsdl,Java,Web Services,Wsdl,一个合作伙伴给了我一个用于他们Web服务的WSDL。我对Web服务不是很有经验,所以我对WSDL有些怀疑。有一种特定的方法允许我们获取一些信息,但我们只能使用一次(否则将面临惩罚)。问题是,它在SOAP响应中以“原始XML”的形式返回,因此我不确定将返回什么,以及如何处理和正确存储它 WSDL的相关部分如下所示: <s:element name="MethodResponse"> <s:complexType> <s:sequence>

一个合作伙伴给了我一个用于他们Web服务的WSDL。我对Web服务不是很有经验,所以我对WSDL有些怀疑。有一种特定的方法允许我们获取一些信息,但我们只能使用一次(否则将面临惩罚)。问题是,它在SOAP响应中以“原始XML”的形式返回,因此我不确定将返回什么,以及如何处理和正确存储它

WSDL的相关部分如下所示:

<s:element name="MethodResponse"> 
    <s:complexType> 
      <s:sequence> 
        <s:element minOccurs="0" maxOccurs="1" name="MethodResult"> 
          <s:complexType mixed="true"> 
            <s:sequence> 
              <s:any /> 
            </s:sequence> 
          </s:complexType> 
        </s:element> 
      </s:sequence> 
    </s:complexType> 
  </s:element> 

提前感谢。

混合内容元素在JAXB中处理起来有点棘手

您的
列表可以是以下内容的组合:

  • 字符串
    ,表示元素中的文本内容
  • JAXBElement
    ,表示架构已知的元素类型,这些元素类型没有
    @XmlRootElement
    注释
  • 上下文已知的具有
    @XmlRootAnnotation
  • org.w3c.dom.Element
    如果上下文不知道内容

@XmlMixed
的javadoc更详细,但这是它的基础。

我想说,这样一个通用的WSDL是完全无用的。没有契约,没有类型安全,对WSDL没有好处。通过检查你学到了什么?没什么

好的,从简单的测试来看,Axis2似乎不能做这些事情,只是抛出了一个异常。几天前我发现了对象是什么:它是一个列表,其中每个对象都是org.w3c.dom.Element。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "methodResult"
})
@XmlRootElement(name = "MethodResponse")
public class MethodResponse {

    @XmlElement(name = "MethodResult")
    protected MethodResponse.MethodResult methodResult;

    public MethodResponse.MethodResult getMethodResult() {
        return methodResult;
    }

    public void setMethodResult(MethodResponse.MethodResult value) {
        this.methodResult = value;
    }


    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "content"
    })
    public static class MethodResult {

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

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

    }

}
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Could not deserialize Soap message