如何在Spring中生成没有默认请求/响应后缀的wsdl?

问题描述:

一个Web服务方法的定义已经由第三方提供给我,我创建了java类,而maven schemagen插件从类生成xsd。然后,我建立了一个spring-ws-servlet等来发布wsdl,只有WSDL11Definition类需要一个请求和responduffix ....我没有后缀。方法名称就像getAttribute,setAttribute,refreshDetails,manageAttribute等。有谁知道解决这个问题的方法吗?是否还有其他的wsdl定义类可以被引用来执行此操作,或者其他提供程序(而不是defaultWsdl11Definition使用的后缀提供程序)?如何在Spring中生成没有默认请求/响应后缀的wsdl?

任何帮助,将不胜感激!

春-WS的设计是围绕"schema first" design,而不是“代码第一”:

在创建Web服务,有 两种开发方式:合同的最后 和契约优先。当使用 合同末尾的方法时,您从 开始Java代码,并让Web服务 合同(WSDL,请参阅边栏)为 ,由此产生。当使用 合同优先,您从 WSDL合同开始,并使用Java执行所述合同的 。

Spring-WS仅支持 契约优先开发风格,而 本节解释了原因。

可以使其与“代码第一”的工作,但你要对你的手一拼。

如果您想坚持使用Spring-WS,那么我强烈建议您使用Web服务规范编写描述操作的XML模式,然后从该模式生成Java或手动编写Java。

+1

谢谢 - 我希望避免必须手动编写WSDL,因为我不太热:-(我应该坚持使用Spring,因为我的意图是坚持使用我们在其他项目中使用的工具 - 避免不断切换和改变我们之前一直遵循这个过程,但总是使用请求和响应后缀 – Rainyday 2010-07-12 11:33:51

+1

@Rainyday:您不必手动编写WSDL,只需要架构Spring- WS会为你生成WSDL,你可以尝试的一件事是按照你现在的方式生成一个模式,然后手工修改它以符合Spring-WS的期望,这将是一次性的任务。 – skaffman 2010-07-12 12:46:26