2012-01-18 2 views
0

Я пытаюсь закодировать простой веб-сервис, который будет добираться до параметров и возвращать три разных параметра.JAX-WS для возврата нескольких значений

Я могу добиться этого с помощью следующих кодов. Но проблема заключается в том, что метод setter также включен в веб-сервис. Например, я хочу защитить «setTransactionID», который будет исключен в методах webservice. Как мне изменить код?

package OKS; 

import javax.jws.WebMethod; 

import javax.jws.WebParam; 

import javax.jws.WebService; 

@WebService 

public class CheckCredit { 

@WebMethod 

public Result GetResult(@WebParam(name="username") String username,@WebParam(name="password") String password) { 

Result res= new Result(); 

    if ((username!=null)&&(password!=null)) { 

     if ((username.equals("xyz"))&&(password.equals("123"))) { 

      res.setResultType(1); 

      res.setTransactionID("tr12128"); 

      res.setCredit(1220); 

     } else { 

      res.setResultType(0); 

      res.setTransactionID("cr12128"); 

      res.setCredit(0); 

     } 

    } else { 

     res.setResultType(0); 

     res.setTransactionID("er12128"); 

     res.setCredit(0); 

    } 

    return res; 

} 

}

Результат Класс

package OKS; 

public class Result { 

int resultType; 

String TransactionID; 

int Credit; 

public void setResultType(int resultType) { 

    this.resultType = resultType; 

} 

public void setTransactionID(String transactionID) { 

    TransactionID = transactionID; 

} 

public void setCredit(int credit) { 

    Credit = credit; 

} 

public int getResultType() { 

    return resultType; 

} 

public String getTransactionID() { 

    return TransactionID; 

} 

public int getCredit() { 

    return Credit; 

} 

}

Эта служба собирает и работает нормально. Но он также включает метод setter в WebService. Как я могу исключить методы setter?

+0

Не могли бы вы просто переименовать setTransactionID() в нечто вроде setTransactionID_please_dont_export_that_method() или какое-нибудь другое имя? –

+0

Или может просто сделать частную работу пакета setTransactionID()? –

+0

Aaah, я думаю, я понял, что вы не очень заботитесь об интерфейсе, но о безопасности, не так ли? В этом случае вы, вероятно, должны смотреть в фасоль с состоянием: http://jax-ws.java.net/nonav/2.2.5/docs/statefulWebservice.html Невозможно защитить небольшие фрагменты текстовых XML-данных способом вы пытаетесь это сделать сейчас. –

ответ

0

Я думаю, вы просто не хотите получать TransactionId в output.If это, чем просто использовать атрибут @XmlTransient для метода get.