没有XSD的Spring WS

use*_*136 5 java spring web-services spring-ws

我试图在Spring和没有任何XSD的Spring WS中创建简单的WS项目。部署在码头上。可以仅从Java类填充WS端点并生成WSDL(没有静态XSD或WSDL-我经历了很多教程,但都需要使用)。

对于任何帮助,提示或链接表示高度赞赏。

我有这样的事情:

1)要求

@XmlRootElement
public class MessageWSRequest {

@XmlElement
private String message;

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}
}
Run Code Online (Sandbox Code Playgroud)

2)端点

@Endpoint
public class MessageWS {
@PayloadRoot(namespace = "http://message.com/ws/message" ,localPart="MessageWSRequest")
public String handleMathServiceRequest(@RequestPayload MessageWSRequest messageWSRequest) {
    return "ok";
}
}
Run Code Online (Sandbox Code Playgroud)

3)springContext.xml

<sws:annotation-driven/>
<context:component-scan base-package="com.ws.message"/>
Run Code Online (Sandbox Code Playgroud)

4)web.xml

<servlet>
    <servlet-name>webservices</servlet-name>
    <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
    <init-param>
        <param-name>transformWsdlLocations</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>webservices</servlet-name>
    <url-pattern>*.wsdl</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>webservices</servlet-name>
    <url-pattern>/endpoints/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

现在,我希望 使用生成的WSDL 这样的URL,例如 localhost:8080 / messageTest / endpoints / MessageWS.wsdl

我错过了一些配置吗?

谢谢大家

use*_*136 5

好的,第二天有个明确的想法告诉我这个事实: Spring WS从XSD Schema开始提供“仅”合同优先

我将改用CXF: Apache CXF提供了后契约(从Java开始)和契约优先(从WSDL开始)两种方法。