gpt4 book ai didi

java - 如何调用带参数的webservice方法?

转载 作者:行者123 更新时间:2023-12-02 00:11:18 34 4
gpt4 key购买 nike

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

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

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

我的类(class)用户有这个:

  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 自动生成的我想实现这个接口(interface)并调用 ADD 方法,但我不知道如何实现?根据要求

例如:如何调用此方法:

SoapService service = new SoapService();
SoapInterface inter = service.addUser(....); // here i don't know what i put
// this parameter to refer to :
/*
@WebMethod
@WebResult(name = "addUserReturn", targetNamespace = "url", partName = "addUserReturn")
public User addUser(
@WebParam(partName = "addUserRequest", name = "addUserRequest", targetNamespace = "url")
UserRequest addUserRequest
); */

Thanks ...

最佳答案

您可以将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>

然后您可以简单地 Autowiring @WebMethod类并调用addUser方法。

关于java - 如何调用带参数的webservice方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119174/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com