2012-01-30 110 views
0

我有点疑惑,我相信我可能错过了一些配置,或者应该尝试其他的东西比CXFWSDL一:CXF代码生成展开/裸

在Java中使用CXF我必须使用所有这些持有者对象,而使用.Net的家伙根本不需要使用持有者。

我认为生成一个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); 

看到这是在Visual Studio内部解决或很我错过了CXF中的东西?

+0

你能发布生成你的代码片段的wsdl吗? – Jeshurun 2012-01-30 13:28:22

回答

1

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

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

+0

另外,我更新了.net示例,因为你说的没有半解开的方法 – javaNoober 2012-01-31 04:54:43

+0

它的工作,我以前的问题是样本版本是2.2.3,不是有一个2.4.2的商品,直到我找到你自己的JIRA票。谢谢。 – javaNoober 2012-01-31 05:08:55