WSDL优先:CXF代码生成展开/裸露

时间:2012-01-30 01:11:14

标签: .net web-services cxf

我有点困惑,我相信我可能会错过一些配置,或者也许应该尝试除CXF之外的其他东西

在Java中使用CXF我必须使用所有这些Holder对象,而使用.Net的人根本不需要使用Holders。

我认为生成WSDL对每个人都有相同的结果,因为生成的代码等同于WSDL签名。

更具体的示例(删除注释):

在.net中他们看到了

public loginResponse loginRequest(loginRequest loginRequest1) { }

我在CXF上看到

public void loginRequest(
        java.lang.String language,
        java.lang.String application,
        java.lang.Boolean userid,
        javax.xml.ws.Holder<java.lang.String> session,
        javax.xml.ws.Holder<java.lang.String> userinfo);

这是在视觉工作室内部解决的还是我在CXF中遗漏了什么?

1 个答案:

答案 0 :(得分:1)

这是根据JAX-WS规范。每种语言或规范都规定了WSDL如何映射到其特定语言。在CXF的情况下,JAX-WS规范要求一个方法是“裸”(看起来像“LogginResponse logingRequest(LoginRequest in)”或完全展开,其中响应对象也被解包映射到参数上,这就是你正在进行。没有.NET打包的东西可以解开params而不是响应。

您可以通过将-bareMethods参数传递给wsdl2java命令行来使用裸模式(假设最新版本的CXF)