代码之家  ›  专栏  ›  技术社区  ›  ps.

java.lang.NoSuchMethodError错误使用JDBI

  •  0
  • ps.  · 技术社区  · 6 年前
    public class MyApplication extends Application<MyConfiguration> {
    
    final static Logger LOG = Logger.getLogger(MyApplication.class);
    public static void main(final String[] args) throws Exception {
        new MyApplication().run(args);
    }
    
    @Override
    public String getName() {
        return "PFed";
    }
    
    @Override
    public void initialize(final Bootstrap<MyConfiguration> bootstrap) {
        // TODO: application initialization
        bootstrap.addBundle(new DBIExceptionsBundle());
    }
    
    @Override
    public void run(final MyConfiguration configuration,
                    final Environment environment) {
        // TODO: implement application
    
        final DBIFactory factory = new DBIFactory();
        final DBI jdbi = factory.build(environment, configuration.getDataSourceFactory(), "postgresql");
    
        UserDAO userDAO = jdbi.onDemand(UserDAO.class);
        userDAO.findNameById(1);
    
    
        UserResource userResource = new UserResource(new UserService(userDAO));
    
        environment.jersey().register(userResource);
    }
    

    我在findNameById得到以下错误。

    java.lang.NoSuchMethodError错误: java.lang.Object对象.findNameById(I)Ljava/lang/String; 在网址:org.skife.jdbi.v2版本。sqlobject.CloseInternalDoNotUseThisClass类$$enhancerbyglib$$a0e63670.CGLIB$findNameById$5()

    }

    public interface UserDAO {
    
    @SqlQuery("select userId  from user where id = :email")
    User isEmailAndUsernameUnique(@Bind("email") String email);
    
    @SqlQuery("select name from something where id = :id")
    String findNameById(@Bind("id") int id);
    

    }

    0 回复  |  直到 6 年前