我需要创建一个 web 服务,它接受请求 soap:Body 元素中的任何xml,并使用响应 soap:Body 中的任何xml 进行回复。合适的 WS 操作风格(在我看来)是“document-literal-bare”。我希望生成的 WSDL 消息看起来像这样:
<s0:message name="process">
<s0:part type="xs:any"/>
</s0:message>
我该怎么做?
详情:
在 Weblogic 10.3 中,我写过:
@WebService(.....)
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERAL, parameterStyle=ParameterStyle.BARE)
public class BackEndSimulatorWS {
@WebMethod
public XmlObject process(XmlObject request) {
.....
}
}
然而,日食抗议
(The "process" method) must be doc/literal/wrapped when binding wildcards to any.
我知道 WS 必须能够确定要执行的方法,所以我尝试用注释方法
@Webmethod(action="simulation")
但这没有帮助。当我用 org.w3c.dom.Document 替换 org.apache.xmlbeans.XmlObject 参数和响应类型时,错误消失了,但生成的 WSDL 消息不一般,它们属于 {java:org.w3c.dom} :文档类型。
任何帮助将不胜感激。