当前位置: 首页 > 面试题库 >

Spring Web Service客户端教程或所需示例

澹台志诚
2023-03-14
问题内容

我需要跳入Spring Web Service项目,因为我需要实现Spring Web Service的Client Only。

因此,我已经阅读了Spring的Client Reference
Document

因此,我有了实现Client所需的类的想法。

但是我的问题就像我做了一些谷歌搜索,但是没有从客户端和服务器上得到任何合适的示例,因为我可以为我的客户端实现一个示例。

因此,如果有人给我一些适当的示例链接或教程,使我可以了解我的客户端实现,将不胜感激。

提前致谢…


问题答案:

在我之前的项目中,我用Spring 2.5.6,maven2,xmlbeans实现了一个Web服务客户端。

  • xmlbeans负责un / marshal
  • maven2用于项目mgmt / building等。

我在此处粘贴一些代码,希望对您有所帮助。

xmlbeans maven插件conf :(在pom.xml中)

<build>
        <finalName>projectname</finalName>

        <resources>

        <resource>

            <directory>src/main/resources</directory>

            <filtering>true</filtering>

        </resource>

        <resource>

            <directory>target/generated-classes/xmlbeans

            </directory>

        </resource>

    </resources>


        <!-- xmlbeans maven plugin for the client side -->

        <plugin>

            <groupId>org.codehaus.mojo</groupId>

            <artifactId>xmlbeans-maven-plugin</artifactId>

            <version>2.3.2</version>

            <executions>

                <execution>

                    <goals>

                        <goal>xmlbeans</goal>

                    </goals>

                </execution>

            </executions>

            <inherited>true</inherited>

            <configuration>

                <schemaDirectory>src/main/resources/</schemaDirectory>

            </configuration>

        </plugin>
<plugin>

            <groupId>org.codehaus.mojo</groupId>

            <artifactId>build-helper-maven-plugin

            </artifactId>

            <version>1.1</version>

            <executions>

                <execution>

                    <id>add-source</id>

                    <phase>generate-sources</phase>

                    <goals>

                        <goal>add-source</goal>

                    </goals>

                    <configuration>

                        <sources>

                            <source> target/generated-sources/xmlbeans</source>

                        </sources>

                    </configuration>

                </execution>



            </executions>

        </plugin>
    </plugins>
</build>

因此,从上述配置文件中,您需要将模式文件(独立的或在WSDL文件中,需要将其提取并另存为模式文件。)放在src / main /
resources下。当您使用Maven构建项目时,pojos将由xmlbeans生成。生成的源代码将位于target / generated-
sources / xmlbeans下。

然后我们来参加Spring conf。我只是将WS相关上下文放在这里:

    <bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">

        <property name="payloadCaching" value="true"/>

    </bean>


    <bean id="abstractClient" abstract="true">
        <constructor-arg ref="messageFactory"/>
    </bean>

    <bean id="marshaller" class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller"/>

 <bean id="myWebServiceClient" parent="abstractClient" class="class.path.MyWsClient">

        <property name="defaultUri" value="http://your.webservice.url"/>

        <property name="marshaller" ref="marshaller"/>

        <property name="unmarshaller" ref="marshaller"/>

    </bean>

最后,看看ws-client java

public class MyWsClient extends WebServiceGatewaySupport {
 //if you need some Dao, Services, just @Autowired here.

    public MyWsClient(WebServiceMessageFactory messageFactory) {
        super(messageFactory);
    }

    // here is the operation defined in your wsdl
    public Object someOperation(Object parameter){

      //instantiate the xmlbeans generated class, infact, the instance would be the document (marshaled) you are gonna send to the WS

      SomePojo requestDoc = SomePojo.Factory.newInstance(); // the factory and other methods are prepared by xmlbeans
      ResponsePojo responseDoc = (ResponsePojo)getWebServiceTemplate().marshalSendAndReceive(requestDoc); // here invoking the WS


//then you can get the returned object from the responseDoc.

   }

}

我希望示例代码对您有所帮助。



 类似资料:
  • 我正在做YoEmber教程:https://github.com/zoltan-nz/library-app。正在获取以下错误- 按照本教程的要求,我使用以下规则创建了Firebase数据库:尽管如此,数据库仍未通过身份验证。我还从FireBase复制了正确的apiKey、authDomain、databaseURL、projectId、storageBucket和messagingSenderI

  • 流程概述 标准的grpc client调用代码,最简单的方式,就三行代码: ManagedChannelImpl channel = NettyChannelBuilder.forAddress("127.0.0.1", 6556).build(); DemoServiceGrpc.DemoServiceBlockingStub stub = DemoServiceGrpc.newBlocking

  • 下列协程客户端是Swoole内置的类,其中 ⚠️ 标志的不要再使用,使用PHP原生的函数+一键协程化。 协程TCP/UDP客户端 协程HTTP客户端 协程HTTP2客户端 协程PostgreSQL客户端 协程Socket客户端 ⚠️ 协程Redis客户端 ⚠️ 协程MySql客户端 ⚠️ 协程System(Coroutine\System),主要是文件操作相关的不推荐使用。 超时规则 所有的网络请

  • 问题内容: 我需要在android应用程序上下载网页,并且很难决定是使用android apache http客户端还是使用Java的URLConnection。 有什么想法吗? 问题答案: 对于大多数事情,我会说这是要走的路。但是,在某些情况和极端情况下,我会退后一步。 编辑 我认为这 是更快的,因为它 是在标准Java库的基础上构建的。但是 我会发现代码更快,更容易编写和维护。根据下面的评论,

  • 当我尝试使用以下robocopy命令将目标文件夹与源文件夹同步时: 我得到了这个错误: 客户端未持有所需的权限 即使我有权从源文件夹复制文件,我也会收到此错误消息。 我如何解决它?

  • 问题内容: 有人可以给我提供一个非常简单的websocket客户端使用示例吗? 我想连接到websocket(ws://socket.example.com:1234),发送消息(添加频道)并收听消息。所有消息(已发送和已收听)均为JSON格式。 顺便说一句,这个库最适合进行简单的websocket通信吗? 问题答案: 我在这里找到了一个很好的例子: http://www.programmingf