Java 具有用户定义参数的jax-ws
我现在正在学习jax-ws。 我定义了一个Web服务: UserService.javaJava 具有用户定义参数的jax-ws,java,web-services,jax-ws,Java,Web Services,Jax Ws,我现在正在学习jax-ws。 我定义了一个Web服务: UserService.java @WebService //@SOAPBinding(style=Style.DOCUMENT, use=Use.LITERAL) public interface UserService { @WebMethod public User modifyUserInfo(@WebParam(name="user")User user); @WebMethod public Us
@WebService
//@SOAPBinding(style=Style.DOCUMENT, use=Use.LITERAL)
public interface UserService {
@WebMethod
public User modifyUserInfo(@WebParam(name="user")User user);
@WebMethod
public User queryUserInfo(@WebParam(name="username")String username);
}
@WebService(endpointInterface="UserService")
public class UserServiceImpl implements UserService{
@Override
public User modifyUserInfo(User user) {
System.out.println(user); //it prints "null"
UserTransaction trans = new ModifyUserInfoTransaction(user);
trans.execute();
return trans.getResult();
}
@Override
public User queryUserInfo(String username) {
UserTransaction trans = new QueryUserInfoTransaction(username);
trans.execute();
return trans.getResult();
}
}
@XmlRootElement
public class User {
public enum UserType {
Normal, Root;
}
private String username;
private String password;
private UserType usertype;
public User() {
usertype = UserType.Normal;
}
//the getters and sertters....
}
UserServiceImpl.java
@WebService
//@SOAPBinding(style=Style.DOCUMENT, use=Use.LITERAL)
public interface UserService {
@WebMethod
public User modifyUserInfo(@WebParam(name="user")User user);
@WebMethod
public User queryUserInfo(@WebParam(name="username")String username);
}
@WebService(endpointInterface="UserService")
public class UserServiceImpl implements UserService{
@Override
public User modifyUserInfo(User user) {
System.out.println(user); //it prints "null"
UserTransaction trans = new ModifyUserInfoTransaction(user);
trans.execute();
return trans.getResult();
}
@Override
public User queryUserInfo(String username) {
UserTransaction trans = new QueryUserInfoTransaction(username);
trans.execute();
return trans.getResult();
}
}
@XmlRootElement
public class User {
public enum UserType {
Normal, Root;
}
private String username;
private String password;
private UserType usertype;
public User() {
usertype = UserType.Normal;
}
//the getters and sertters....
}
User.java
@WebService
//@SOAPBinding(style=Style.DOCUMENT, use=Use.LITERAL)
public interface UserService {
@WebMethod
public User modifyUserInfo(@WebParam(name="user")User user);
@WebMethod
public User queryUserInfo(@WebParam(name="username")String username);
}
@WebService(endpointInterface="UserService")
public class UserServiceImpl implements UserService{
@Override
public User modifyUserInfo(User user) {
System.out.println(user); //it prints "null"
UserTransaction trans = new ModifyUserInfoTransaction(user);
trans.execute();
return trans.getResult();
}
@Override
public User queryUserInfo(String username) {
UserTransaction trans = new QueryUserInfoTransaction(username);
trans.execute();
return trans.getResult();
}
}
@XmlRootElement
public class User {
public enum UserType {
Normal, Root;
}
private String username;
private String password;
private UserType usertype;
public User() {
usertype = UserType.Normal;
}
//the getters and sertters....
}
当我在客户机中调用queryUserInfo()时,它可以工作;但调用modifyUserInfo()时,
当服务器执行函数时,参数user为null
我使用wsimport生成客户机代码
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
当我使用QName和javax.xml.ws.Service而不是wsimport时,它可以工作
如果有人知道这件事,请告诉我。谢谢我在客户端和服务器应用程序中配置了JAXBDataBinding。它可以工作。您可以再试一次