java – Spring Web服务流程

前端之家收集整理的这篇文章主要介绍了java – Spring Web服务流程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是初学网络服务的新手,在为一个阶乘服务编写示例程序后,我有些疑惑.我认为这是春季网络服务的工作原理:

Application run on server and generates a request –> Request goes to
dispatcher servlet as defined in web.xml –> dispatcher servlet looks
for [servlet-name]-servlet.xml –> dispatcher servlet then looks for
payloadroot which finds the right endpoint –> the xml request goes to
the end point –> response is generated by the endpoint

现在我的怀疑是:

  1. How does the request that comes to the endpoint comes in XML form? I know XSD helps to create xml but when does it do that?
  2. In this whole process when is wsdl constructed?

以下是bean定义,即:[servlet-name] -servlet.xml文件

<beans ...>
    <bean id="findFactorialService" class="springws.findFactorial.FindFactorialServiceImpl"/>

    <bean id="findFactorialServiceEndpoint" class="springws.findFactorial.endpoint.FindFactorialServiceEndpoint">
        <property name="findFactorialService" ref="findFactorialService" />
    </bean>

    <bean id="payloadMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
            <property name="defaultEndpoint" ref="findFactorialServiceEndpoint" />
        </bean>

        <bean id="findFactorialSchema" class="org.springframework.xml.xsd.SimpleXsdSchema">
            <property name="xsd" value="/WEB-INF/findFactorialService.xsd"  />
        </bean>

        <bean id="findFactorial" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
            <property name="schema" ref="findFactorialSchema" />
            <property name="portTypeName" value="hello" />
            <property name="locationUri" value="http://localhost:7070/find-factorial-using-contractfirst/services" />
        </bean>
    </beans>

解决方法

> XSD不生成xml,它用于验证它.编写客户的人也会使用它来了解如何形成他们的xml以发送到您的服务. “请求”是由某种类型的客户端发送到您的服务中的消息 – 它通常是通过http协议(万维网协议)进入您的服务的.
>您在代码中提到这意味着契约优先 – 这意味着您应该在执行任何其他操作之前编写wsdl(尽管通常这与描述接口的xsd一起完成).然后可以使用wsdl和一些注释配置Spring以处理消息 – 您甚至可以使用jaxb直接绑定到代码中的java对象,这样您就不必手动解析传入的xml有效负载.

This is old,但它遵循您正在使用的相同方法,甚至使用相同的已弃用的spring类.

如今,许多开发人员都避免使用WS- *风格的Web服务,而采用基于REST的Web服务,这些服务使用spring-web和spring-mvc非常容易实现,并且在java pojo上有几个简单的注释.如果愿意,您甚至可以让spring自动将xml有效负载绑定到从xsd生成的java对象,这样您就不必在任何时候实际处理XML.

猜你在找的Java相关文章