[jboss-user] [JBossWS] - get complex type in web service client
argol1278
do-not-reply at jboss.com
Wed Aug 6 08:39:14 EDT 2008
Whene i invoke web service in client application i have java.lang.NullPointerException.
In log in SOAP message there are values but client can't get them. This is what i have done:
| @XmlAccessorType(XmlAccessType.FIELD)
| @XmlType(name = "Users",namespace="http://webServices.ejb/" ,propOrder = { "userid","name","surname","login",
| "password","status","email" })
| @XmlRootElement(namespace="http://webServices.ejb/", name = "test")
| public class Users implements Serializable{
|
| @XmlElement(namespace="http://webServices.ejb/",name="userid")
| private int userid;
| @XmlElement(namespace="http://webServices.ejb/")
| private String name;
| @XmlElement(namespace="http://webServices.ejb/")
| private String surname;
| @XmlElement(namespace="http://webServices.ejb/")
| private String login;
| @XmlElement(namespace="http://webServices.ejb/")
| private String password;
| @XmlElement(namespace="http://webServices.ejb/")
| private int status;
| @XmlElement(namespace="http://webServices.ejb/")
| private String email;
| @XmlTransient
| private Set addresses = new HashSet(0);
| @XmlTransient
| private Set accounts = new HashSet(0);
|
|
|
| public Users() {
| }
|
| public int getUserid() {
| return this.userid;
| }
|
| public void setUserid(int userid) {
| this.userid = userid;
| }
|
| public String getName() {
| return this.name;
| }
|
| public void setName(String name) {
| this.name = name;
| }
|
| public String getSurname() {
| return this.surname;
| }
|
| public void setSurname(String surname) {
| this.surname = surname;
| }
|
| public String getLogin() {
| return this.login;
| }
|
| public void setLogin(String login) {
| this.login = login;
| }
|
| public String getPassword() {
| return this.password;
| }
|
| public void setPassword(String password) {
| this.password = password;
| }
|
| public int getStatus() {
| return this.status;
| }
|
| public void setStatus(int status) {
| this.status = status;
| }
|
| public String getEmail() {
| return this.email;
| }
|
| public void setEmail(String email) {
| this.email = email;
| }
|
| public Set getAccounts() {
| return accounts;
| }
|
| public void setAccounts(Set accounts) {
| this.accounts = accounts;
| }
|
| public Set getAddresses() {
| return addresses;
| }
|
| public void setAddresses(Set addresses) {
| this.addresses = addresses;
| }
|
|
| }
|
|
| @Stateless(mappedName = "UsersOperations")
| @WebService(name = "UsersOperations")
| public class UsersOperations implements UsersOperationsEjbRemote, UsersOperationsEjbLocal {
|
| /**
| * Default constructor.
| */
| public UsersOperations() {
| // TODO Auto-generated constructor stub
| }
|
| @WebMethod
| public Users test(@WebParam(name = "userid") int userid){
| // Hibernate query
| Users u = queryUserDetails(userid);
| System.out.println(u.getLogin());
| return u;
| }
|
|
| }
|
CLIENT
| @WebService(name = "UsersOperations", targetNamespace = "http://webServices.ejb/")
| @XmlSeeAlso({bankDB.Users.class})
| public interface UsersOperations {
|
| @WebMethod
| @WebResult(targetNamespace = "http://webServices.ejb/")
| public Users test(@WebParam(name = "userid") int userid);
| }
|
| @WebServiceClient(name = "UsersOperationsService", targetNamespace = "http://webServices.ejb/", wsdlLocation = "http://127.0.0.1:8080/Bank-BankEJB/UsersOperations?wsdl")
| public class UsersOperationsService
| extends Service
| {
|
| private final static URL UsersOperationsService_WSDL_LOCATION;
|
| static {
| URL url = null;
| try {
| url = new URL("http://127.0.0.1:8080/Bank-BankEJB/UsersOperations?wsdl");
| } catch (MalformedURLException e) {
| e.printStackTrace();
| }
| UsersOperationsService_WSDL_LOCATION = url;
| }
|
| public UsersOperationsService(URL wsdlLocation, QName serviceName) {
| super(wsdlLocation, serviceName);
| }
|
| public UsersOperationsService() {
| super(UsersOperationsService_WSDL_LOCATION, new QName("http://webServices.ejb/", "UsersOperationsService"));
| }
|
| /**
| *
| * @return
| * returns Notification
| */
| @WebEndpoint(name = "UsersOperationsPort")
| public UsersOperations getUsersOperationsPort() {
| return (UsersOperations)super.getPort(new QName("http://webServices.ejb/", "UsersOperationsPort"), UsersOperations.class);
| }
|
|
| // invoke web service in client
| UsersOperationsService service = newUsersOperationsService();
| UsersOperations ejb = service.getUsersOperationsPort();
| Users u = ejb.test(2);
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4169025#4169025
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4169025
More information about the jboss-user
mailing list