各位,帮帮忙看一下

我正在学习rcp,现在建立一个plug-in project项目。现在出现点问题,各位帮忙看一下:

错误提示:

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:126)
at com.boyi.jfcs.sys.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:12)

at com.boyi.jfcs.system.Login.isValidate(Login.java:55)
at com.boyi.jfcs.system.Login.isLogin(Login.java:45)
at com.boyi.jfcs.app.Application.start(Application.java:28)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)

以下是代码:

HibernateSessionFactory.java

  1. package com.boyi.jfcs.sys;
  2. import org.hibernate.HibernateException;
  3. import org.hibernate.Session;
  4. import org.hibernate.SessionFactory;
  5. import org.hibernate.cfg.Configuration;
  6. public class HibernateSessionFactory {
  7.     private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
  8.     
  9.     private static final Configuration cfg = new Configuration();
  10.     
  11.     private static SessionFactory sf;
  12.     
  13.     //获取session对象
  14.     public static Session getSession(String configFile) throws HibernateException{
  15.         Session session = (Session) threadLocal.get();
  16.         if(session == null || !session.isOpen()){
  17.             if(sf == null){
  18.                 try{
  19.                     cfg.configure(configFile);
  20.                     sf = cfg.buildSessionFactory();
  21.                 }catch(Exception e){
  22.                     e.printStackTrace();
  23.                 }
  24.             }
  25.             session = (sf == null)? null:sf.openSession();
  26.             threadLocal.set(session);
  27.         }
  28.         return session;
  29.     }
  30.     
  31.     //关闭session对象
  32.     public static void closeSession() throws HibernateException{
  33.         Session session = (Session) threadLocal.get();
  34.         threadLocal.set(null);
  35.         if(session != null){
  36.             session.close();
  37.         }
  38.     }
  39.     
  40.     
  41. }

Login.java

  1. package com.boyi.jfcs.system;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import org.eclipse.core.runtime.CoreException;
  5. import org.eclipse.core.runtime.Platform;
  6. import org.eclipse.core.runtime.preferences.ConfigurationScope;
  7. import org.eclipse.jface.dialogs.MessageDialog;
  8. import org.eclipse.jface.window.Window;
  9. import org.eclipse.swt.widgets.Display;
  10. import org.hibernate.Query;
  11. import org.hibernate.Session;
  12. import org.osgi.service.prefs.Preferences;
  13. import com.boyi.jfcs.model.SaveLogInfo;
  14. import com.boyi.jfcs.sys.HibernateSessionFactory;
  15. import com.boyi.jfcs.sys.IAppConstants;
  16. import com.boyi.jfcs.ui.LoginDialog;
  17. public class Login {
  18.     public boolean isLogin(){
  19.         final LoginDialog loginDialog = new LoginDialog(Display.getCurrent().getActiveShell());
  20.         boolean loop = false;
  21.         while(!loop){
  22.             if(loginDialog.open() != Window.OK){
  23.                 return false;               
  24.             }
  25.             String username = SaveLogInfo.getINSTANCE().getUsername();
  26.             String password = SaveLogInfo.getINSTANCE().getPassword();
  27.             loop = isValidate(username,password);
  28.             if(!loop){
  29.                 MessageDialog.openWarning(null,"提示","用户名或者密码错误,无法登陆");
  30.             }
  31.         }
  32.         return loop;
  33.     }
  34.     
  35.     private boolean isValidate(String username, String password){
  36.         boolean logtag = false;
  37.         Session session = HibernateSessionFactory.getSession("hibernate_derby.cfg.xml");
  38.         String hql = "from Users where username:user and password:pwd";
  39.         Query query = session.createQuery(hql);
  40.         query.setString("user", username);
  41.         query.setString("pwd", password);
  42.         if(query.list().size() > 0){
  43.             logtag = true;
  44.         }
  45.         HibernateSessionFactory.closeSession();
  46.         return logtag;
  47.     }
  48. }

搞定了,,谢谢群里边各位了,问题还是少几个包:lib/log4j-1.2.15.jar,lib/commons-logging.jar,lib/commons-pool.jar。

在plugin.xml里边选择Runtime页面,有下侧有个classpath:依次添加以上几个包就好了。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值