I typically do it like this:
struct User {
1: required string username;
2: required i32 id;
3: required string homedir;
}
service UserService {
User getUser(1:i32 userid);
}
When I compile the thrift file, it generates the User class.
--nash
On Wed, Jun 17, 2015 at 10:41 AM reena upadhyay <[email protected]> wrote:
> I'm developing a service using apache thrift. I have a service named
> getUser which returns User object. I couldn't find any way to define
> user-defined data type as a return type for my service defined in .thrift
> file.
>
> user.thrift file looks like:
>
> service UserService{
> User getUser(1:i32 userId),}
>
> When I am compiling the user.thrift to generate java source code, I am
> getting "*Type "User" has not been defined*" error. Can anyone please help
> me, how to represent this user-defined java object as a data type in
> thrift.
>
> The getUser method code in service implementation class:
>
> @Override
> public User getUser(int user id) throws TException {
> // here is the code that fetch the user object from database
> return user;
> }
>
> This is my User class, whose object is being returned by service getUser:
>
> public class User {
>
> private int userId;private String name;private String city;private
> String country;public int getUserId() {
> return userId;}public void setUserId(int userId) {
> this.userId = userId;}public String getName() {
> return name;}public void setName(String name) {
> this.name = name;}public String getCity() {
> return city;}public void setCity(String city) {
> this.city = city;}public String getCountry() {
> return country;}public void setCountry(String country) {
> this.country = country;}
>
> }
>