我应该调用网络服务来添加新用户。为此,我使用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方法,但我不知道怎么做?根据要求谢谢...
您可以将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
方法。