• Пустая страница при обработке ошибок сервера?

    timych
    @timych
    Есть логи сервера? Что показывает консоль в браузере(какой код возвращает реквест на страницу). Какая версия сервлетов используется (2.5 или 3.x)?
    Ответ написан
    Комментировать
  • Пролистование страниц с JTextAre?

    timych
    @timych
    olololosh Не вижу проблемы. Разбиваешь текст на фрагменты нужной длины. Складываешь в массив. По нажатию кнопки "вперед/назад" берешь из массива по текущему индексу нужный кусок текста и подменяешь его текстовом поле. Индекс изменяешь по каждому нажатию (в пределах размера массива конечно же).
    Ответ написан
  • Как в netBeans запускать на выполнение не главные Java классы?

    timych
    @timych
    Для того чтобы запустить класс , он должен содержать в себе метод main(String [] args).
    Не знаю как NetBeans, но в Eclipse - контекстное меню на классе -> Run as Java application.
    Ответ написан
    Комментировать
  • Как вывести названия столбцов из таблицы?

    timych
    @timych
    Можно немного покритиковать?
    Во первых - прикладывайте stack trace (Хотя я уверен что выскочил HibernateException).

    Во вторых читайте Javadoc: Метод createQuery() - Create a new instance of Query for the given HQL query string.
    В вашем рабочем примере вы как раз и используете HQL. А в нерабочем пытаетесь запихнуть SQL специфичный для MySql базы данных.
    Если хотите использовать SQL, то наверное лучше использовать createSQLQuery().

    В третьих , это все равно работать будет -потому что вы пытаетесь засунуть в Entity , который описывает таблицу, заголовки колонок, этой таблицы. Вы сами представляете как это возможно? Непонятно что вы хотите сделать, и для чего это нужно. Вы не знаете названия колонок в таблице? И на кой черт рест-клиенту их получать?

    Но если уж так надо , то вот вроде рабочий пример: https://developer.jboss.org/thread/189593?start=0&...
    Ответ написан
    Комментировать
  • Hibernete: Как создавать Entity для SQL-запросов со смешанными полями?

    timych
    @timych
    А в какой обьект вы собрались записывать результат запроса? Какой-то POJO все равно нужен.

    Вобще обратите свой взор на QueryDsl
    www.querydsl.com
    а конкретно на ConstructorExpression - очень удобная штука(особенно если maven используете)
    www.querydsl.com/static/querydsl/3.2.2/apidocs/com...
    Ответ написан
  • Как организовать хранение изображений в веб-проекте под Tomcat?

    timych
    @timych
    Загружайте в любую директорию на сервере. Просто в каком -нибудь конфиге пропишите корень к файловому хранилищу. Там уже как душа пожелает.
    PS: Вот подобный вопрос - Как лучше всего организовать хранение файлов?
    Ответ написан
  • Jackson сериализация POJO. Как вытащить единственное свойство из инкапсулируемого объекта?

    timych
    @timych
    Я не понял вы хотите вытащить поля класса B не обращаясь к самому классу? А вас не устраивает:
    A a  =  new A();
    B b  =  new B();
    a.setB(b);
    // инициализирум поля и  преобразовываем в  JSON
    ...
    // после парсинга из  JSON
    String bId = a.getB().getId();


    ?

    Или я не допонял вопрос?
    Ответ написан
    1 комментарий
  • Что используют для шаблонов JSP-приложения?

    timych
    @timych
    https://ru.wikipedia.org/wiki/Apache_Struts копайте в сторону Struts

    Либо Spring MVC как вы и сказали
    Примеры обычно бывают в официальных туториалах.

    Голый JSP никому не нужен сейчас (технология довольно старая). Да и сложно на голом JSP написать серьезное приложение.
    Ответ написан
    Комментировать
  • Стоит ли использовать Community Edition IntelliJ IDEA, или остаться на Eclipse?

    timych
    @timych
    Сам до последнего был сторонником Eclipse. (когда уже все коллеги пересели на idea). но когда попробовал что это такое, то понял какой эклипс все таки забагованный и неудобный по сравнению с идеей :)
    Ответ написан
    Комментировать
  • Как передать изображения на клиент?

    timych
    @timych
    Ход мыслей у вас правильный - в DTO кладете весь дескрипшн и линк на сервис выдающий изображения. Например myservice.myimageresource?imgId=12345.
    Ресурс может быть либо сервлетом либо рест ресурсом. Картинку берете из базы и сразу отдаете байтовым потоком клиенту по GET запросу. Писать во временную папку не надо.

    В ответ на ваш коммент отредактировал тут -так как тут есть теги для кода.
    Вот сильно упрощенный пример сервлета, отдающего картинку.
    public class PreviewServlet extends HttpServlet {
    	
    	private static final long serialVersionUID = 1L;
    	
    	//  это ваше DAO
    	private PreviewService previewService = Fascade.getPreviewService();
    
    @Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("image/jpeg");
    		//парсим id картинки из запроса
    		int imageId = Integer.parseInt(request.getParameter("id"));
    		//Тут вы получаете  Entity вашей картинки, одно из полей у которого является массивом байт
    		Preview preview = previewService.getByImageId(imageId);
    		byte[] bytes  = preview.getBytes();
    		response.setContentLength((int) bytes.length);		
    		// получаете поток для своих нужд
    		ServletOutputStream outStream = response.getOutputStream();
    		// отсылаете картинку на клиента
    		outStream.write(bytes);
    		// закрываете поток
    		outStream.close();
    	}
    }

    Почти подобным образом можно и через рест ресурс отдать.
    Ответ написан
    2 комментария
  • Как научить девочку программировать?

    timych
    @timych
    Вы извините за грубость но - нахрена? Многие родители хвастают что их дети лихо с планшетом/телефоном/компьютером управляются в три года. Но это не обозначает что они все способны создавать какой-либо контент, а тем более программировать. Хотя если так хочется, потратьтe 400 евро на Lego Mindstorm. Если ее не заинтересует, сами хоть поиграете. :)
    Ответ написан
  • На что потратить время и силы в плане программирования?

    timych
    @timych
    Выучите С++ - цены вам не будет. Сейчас сишников все меньше и меньше. Java освоите потом с легкостью, если понадобится. А вот наоборот не факт (мне вот не дается).
    Ответ написан
  • Как сделать проверку на нажатие клавиши "." на цифровой клавиатуре NumberDecimal?

    timych
    @timych
    В Java значения строк не проверяют на "==" (в отличии например от C#)
    Нужно вызвать метод .equals().

    if(myedittext.getText().toString().equals(".")) {
          // Действия
    }

    PS: В случае если возвращаемая строка длинней одного символа, то можно проверять наличие "." вызвав метод contains().
    Ответ написан
    2 комментария
  • Где я допустил ошибку?

    timych
    @timych
    package application;
    
    import java.awt.FileDialog;
    import java.awt.Frame;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.Scanner;
    
    
    // Тут необязательно наследоваться от JFrame
    // Название класса  должно отображать его предназаначение
    public class BookReader {
    
    	// поля должны быть приватными
    	private FileDialog fileDialog;
    	private BookReaderCallback callback;
    
    	// Вложенный интерфейс обратного вызова
    	public interface BookReaderCallback {
    		// метод будет вызван, когда текстовый файл будет успешно прочитан до конца
    		void onReadComplete(String text);
    	}
    
    // В конструктор передаем фрейм родителя
    // не обязательно его инстанцировать в этом классе
    	public BookReader(Frame parent) {
    		fileDialog = new FileDialog(parent, "Select book", FileDialog.LOAD);
    	}
    
    	//А название метода  должно отображать его действие или результат действия
    	public void readBook() {
    
    		// show() deprecated поэтому вызываем  "setVisible"
    		fileDialog.setVisible(true);
    
    		if (fileDialog.getDirectory() == null || fileDialog.getFile() == null) {
    			return;
    		}
    
    		Scanner in = null;
    		String text = "";
    		try {
    			in = new Scanner(new File(fileDialog.getDirectory(),
    					fileDialog.getFile()));
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		}
    		while (in.hasNext()) {
    			text += in.nextLine() + "\n";
    		}
    		in.close();
    		// прочитали файл и теперь через обьект класса обраьтного вызова 
    		//нотифицируем вызывающий класс о том что текст прочитан и передаем ему результат
    		if (callback != null) {
    			callback.onReadComplete(text);
    		}
    
    	}
    
    	//"ceттер" для экземпляра обратного вызова
    	public void setCallback(BookReaderCallback callback) {
    		this.callback = callback;
    	}
    }
    
    package application;
    
    import java.awt.Button;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.LookAndFeel;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;
    
    
    public class JFrameCreator {
    
    	public static void main(String[] args) {
    		createGUI();
    	}
    
    	public static void createGUI() {
    
    		try {
    			UIManager.setLookAndFeel((LookAndFeel) Class.forName(UIManager.getCrossPlatformLookAndFeelClassName()).newInstance());
    		} catch (InstantiationException | IllegalAccessException| ClassNotFoundException | UnsupportedLookAndFeelException e) {
    			// Игнорируем
    		}
    
    		JPanel content = new JPanel(new FlowLayout());
    		// вместо Label для текста стоит бы использовать TextArea(Label - для короткого однострочного текста),
    		JTextArea textArea = new JTextArea();
    		textArea.setText("Пока пусто...");
    		Button btnOpenFileDialog = new Button("Browse");
    		content.add(btnOpenFileDialog);
    		content.add(textArea);
    
    		JFrame frame = new JFrame("LIBRARY");
    		frame.setContentPane(content);
    		frame.setPreferredSize(new Dimension(300, 200));
    		frame.pack();
    		
    		// центрируем относительно экрана
    		frame.setLocationRelativeTo(null);
    
    		// навешиваем слушатель на кнопку 
    		// это плохой пример, скорее всего нужно навесить KeyListener, но лень имплементировать три метода
    		btnOpenFileDialog.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// создаем обьект BookReader
    				BookReader bookReader = new BookReader(frame);
    				// передаем ему экземпляр BookReaderCallback в виде анонимного класса
    				bookReader.setCallback(new BookReader.BookReaderCallback() {
    
    					// метод будет вызван из класса BookReader как только файл будет прочитан
    					@Override
    					public void onReadComplete(String text) {
    						// меняем текст в Label
    						textArea.setText(text);
    					}
    				});
    				// запускаем "читалку" :)
    				bookReader.readBook();
    
    			}
    		});
    
    		frame.setVisible(true);
    	}
    
    }


    Если я правильно понял задачу, то вот как примерно можно было переделать. Это все упрощенно конечно (Да я и не спец в Swing ).
    А то опять какая-то каша понаписана. Старайтесь во первых называть классы и методы адекватно. Я уже говорил кстати об этом :).
    И начинайте с основ Java. Заметно что пока плохое понятие OOП.
    Ответ написан
    6 комментариев
  • Правильный пример java+rest server?

    timych
    @timych
    docs.oracle.com/javaee/7/tutorial/jaxrs.htm#GIEPU
    Это доки. (Полная версия книги в PDF тоже есть)

    resteasy.jboss.org
    Это реализация, которой многие пользуются.
    В загрузках разделе "Documentation" есть гора примеров для скачки.
    Правда я ими почти не пользовался - подсматривал на работе у более опытных коллег :)
    Ответ написан
    Комментировать
  • Ошибка в настройке окружения eclipse (для автотестов)?

    timych
    @timych
    Я не очень знаком с Selenium.
    Но у вас переменные baseUri и driver не обьявлены в этом классе и не инициализированы.
    Либо они инициализированы в TestBase , но имеют неподходящий модификатор доступа (поэтому и не видны в данном класе) поставьте модификатор public (либо protected если классы в одном пакете)
    И еще вместо "extends selenium.pages.TestBase" напишите просто extends TestBase и нажмите ctrl+shift+o (organize import);
    Также непонятно зачем вам com.mysql.jdbc.Driver ?
    Вероятно вы хотели написать WebDriver.get("baseUrl + "/login.html"")
    Он откроет страницу логина.
    В общем советую чуточку почитать основы Java. Иначе тяжело будет :)
    Ответ написан
    2 комментария
  • Как сделать SVG rect с четкими краями, pixel perfect?

    timych
    @timych
    https://jsfiddle.net/dod5ysuz/3/
    Используйте свойство shape-rendering="crispEdges"
    Ответ написан
    Комментировать
  • Что значит этот код?

    timych
    @timych
    Как что?
    Создается обьект класса JSONObject.
    В него кладутся пары ключ-значение и в последнем случае еще один обьект аналогичного класса.
    JSONObject нужен для работы с JSON строками.
    Ответ написан
    2 комментария
  • Java junior developer кратчайший путь с нуля до реальной работы?

    timych
    @timych
    Не разменивайтесь на много ресурсов. Одной хорошей книги достаточно на данном этапе. Самое главное, без чего вас многие не захотят брать на работу - свой проект. КАЖДЫЙ работодатель будет у вас спрашивать, что вы написали для себя, для души. (По крайней мере у меня так было) Придумайте себе задачу. Начинайте писать. Работадатель хочет увидеть реальный код и то, что вы не теоретик. И очень немаловажно этим показать что программирование для вас больше чем просто работа. Удачи!
    Ответ написан
    3 комментария