title: How to represent java object as return type of service in .thrift file
body: <p>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.</p>
  
  <p>user.thrift file looks like:</p>
  
  <pre><code>service UserService
  {
          User getUser(1:i32 userId),
  }
  </code></pre>
  
  <p>When I am compiling the user.thrift to generate java source code, I am getting "<strong>Type "User" has not been defined</strong>" error. Can anyone please help me, how to represent this user-defined java object as a data type in thrift.</p>
  
  <p>The getUser method code in service implementation class:</p>
  
  <pre><code>@Override
  public User getUser(int user id) throws TException {
      // here is the code that fetch the user object from database
      return user;
  }
  </code></pre>
  
  <p>This is my User class, whose object is being returned by service getUser:</p>
  
  <pre><code>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;
      }
  
  }
  </code></pre>