Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有用户定义参数的jax-ws_Java_Web Services_Jax Ws - Fatal编程技术网

Java 具有用户定义参数的jax-ws

Java 具有用户定义参数的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

我现在正在学习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 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。它可以工作。您可以再试一次