如何使用参数调用Webservice的方法?

问题描述 投票:0回答:1

我应该调用网络服务来添加新用户。为此,我使用WSDL2JAVA从WSDL生成工件

我的端点接口具有我可以调用的不同操作:

 @WebMethod
    @WebResult(name = "addUserReturn", targetNamespace = "url", partName = "addUserReturn")
    public User addUser(
        @WebParam(partName = "addUserRequest", name = "addUserRequest", targetNamespace = "url")
        UserRequest addUserRequest
    );

和我的班级用户有这个:

  public String getFirstName() {
        return firstName;
    }

    /**
     * Sets the value of the firstName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setFirstName(String value) {
        this.firstName = value;
    }

    /**
     * Gets the value of the greeting property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getGreeting() {
        return greeting;
    }

此类是从WSDL自动生成的我想实现此接口并调用ADD方法,但我不知道怎么做?根据要求谢谢...

java jax-ws soap-client webservice-client wsdl2java
1个回答
0
投票

您可以将wsdl2java打包为jar文件,并将其添加到类路径中,然后初始化@WebMethod类以调用服务。

请参考文档here中的“编码客户端”部分

我想你可以做这样的事情。

        UserServiceImplService serviceImpl = new UserServiceImplService();

        UserService service = serviceImpl.getUserServiceImplPort();

        UserRequest userRequest = new UserRequest();
        userRequest.setFirstName("Tom");
        userRequest.setLastName("Jerry");

        User user = service.addUser(userRequest);

这里有一个示例https://github.com/nkumarclm/jax-ws-example jaxws供您参考。

另外,另一种方法是在jaxws-maven-plugin中使用pom.xml,这样可以将wsdl副本保留在本地并生成所有必需的工件。

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>web-services</id>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <wsdlDirectory>${basedir}/src/main/resources/wsdl/</wsdlDirectory> //location of your wsdl folder
                        <wsdlFiles>
                            <wsdlFile>user.wsdl</wsdlFile> //wsdl file name
                        </wsdlFiles>
                        <sourceDestDir>${basedir}/src/generated/java</sourceDestDir>
                        <verbose>true</verbose>
                    </configuration>
                </execution>
            </executions>
        </plugin>

然后您可以简单地自动连接@WebMethod类并调用addUser方法。

© www.soinside.com 2019 - 2024. All rights reserved.