thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From reena upadhyay <reena2...@gmail.com>
Subject Re: How to represent java object as return type of service in .thrift file
Date Wed, 17 Jun 2015 18:17:38 GMT
I have built custom ODBC driver which works at client side, and there I
would need a connection object.

On Wed, Jun 17, 2015 at 11:43 PM, Stuart Reynolds <stu@stureynolds.com>
wrote:

> This isn't going to work. A java.sql.Connection contains data that
> can't be communicated outside of the process (e.g. file system
> objects)
>
> This is a limitation of (almost all) network communication protocols,
> not specifically thrift.
> I guess, *why* do you want to send a Connection object out of your process?
> There's probably something more sensible that you should send instead.
>
>
>
>
> On Wed, Jun 17, 2015 at 11:00 AM, reena upadhyay <reena2485@gmail.com>
> wrote:
> > Ok. Thanks for the reply.
> >
> > But my actual use case is: I want my service to return
> java.sql.Connection
> > object, and this data type is not supported in hive. How it represent it
> in
> > thrift file?
> >
> > .thrift file is:
> >
> > service databaseService{
> >         Connection openConnection(),}
> >
> >
> > The openConnection method code in service implementation class:
> >
> > @Override
> >      public Connection openConnection() throws TException {
> >        // here is the code that fetch the user object from database
> >       return connecton;
> >      }
> >
> >
> > On Wed, Jun 17, 2015 at 11:19 PM, nash <nashef@gmail.com> wrote:
> >
> >> 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 <reena2485@gmail.com>
> >> 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;}
> >> >
> >> > }
> >> >
> >>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message