Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2012, 12:03   #1
Anatai
 
Регистрация: 23.01.2011
Сообщений: 5
По умолчанию ClassLoader

Привет всем.

Пишу веб-сервис приложение, хочу сделать чтоб туда можно было скопировать файл class и сервер сам его загрузил. Написал свой ClassLoader подключил к серверу, но при вызове метода из класса не находит org.hibernate.Session. Хотя к проекту подключен hibernate3.jar. Для сервера использую Tomcat 7.

Подскажите что можно сделать?

код загрузчика:
Код:
public class ServerClassLoader extends ClassLoader {
	private String path;
	private HashMap<String, Class<?>> cache = new HashMap<String, Class<?>>();
	
	public ServerClassLoader(String path, ClassLoader parent) {		
		super(parent);
		this.path = path;
	}
	
	@Override
	public Class<?> loadClass(String name) {
		File f = new File(path + name.replace('.', '/') + ".class");
		try {
			if (f.exists() == false)		
				return super.findSystemClass(name);
			
			if (cache.get(name) != null) 
				return cache.get(name);
			
			FileInputStream is = new FileInputStream(f);			
			
			byte[] data = new byte[(int)f.length()];			
			
			if (is.read(data, 0, (int)f.length()) < 0) {
				throw new IOException("");
			}
			
			Class<?> cls = defineClass(name, data, 0, (int)f.length()); 
			
			cache.put(name, cls);
			
			return cls;
		}
		catch(FileNotFoundException e) {
			return null;
		}
		catch(ClassNotFoundException e) {
			return null;
		}
		catch(IOException e) {
			return null;
		}
	}
Anatai вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск