Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с запуском апплета в браузере / 7 сообщений из 7, страница 1 из 1
26.04.2012, 09:21:42
    #37771637
nemozar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском апплета в браузере
Здравствуйте, создаю программу для сканирования на яве. Интересует сканирование через браузер.

Создал аплет и десктопную программу. Аплет в нетбинсе запускается нормально. В браузере подключаю апплет с кодом

Код: java
1.
<APPLET codebase="classes" code="jtwacker/jScan.class" width=350 height=200></APPLET>



Как работает программа... Есть класс JTwain
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
package org.scavino.twain;
public class JTwain {
    private static final JTwain mInstance = new JTwain();

    /** Name of the C/C++ JNI DLL which communicates with the C TWAIN DLL.
     * The file name is case sensative and must NOT contain
     * the .DLL extension
     */
    protected final String DLL_NAME = "jtwain";
    
        private JTwain() {
        initLib();
    }
    
      public static JTwain getInstance(){
        return mInstance;
    }

    public native boolean isTwainAvailble();
    
    public native String[] getAvailableSources();
    
    public native String acquire();
    
    public native String acquire(String sourceName);

    /*
     * Loads the C/JNI Libray
     */
    private void initLib(){

        try {
            
            System.loadLibrary(DLL_NAME);
        }
        
        finally {
            // Send to your logging subsystem
            System.out.println("Loading : " + DLL_NAME + ".dll");
        }
    }
}



А вот сам код программы (апплета):

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
/** Add the buttons to the toolbar
     */    
    protected void addButtons(){
        
        JButton _ab = new JButton("Acquire");
        _ab.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                acquireImage();
            }
        });
        mToolBar.add(_ab);
        mToolBar.addSeparator();
        
[color=red]        if (org.scavino.twain.JTwain.getInstance().isTwainAvailble()) {
            
            String[] twainSources = org.scavino.twain.JTwain.getInstance().getAvailableSources();[/color]
            if (twainSources != null) {
                mSourcesCombo = new JComboBox(twainSources);
                //mSourcesCombo.addItem("<NONE AVAILABLE>");
            } else {
                mSourcesCombo = new JComboBox();
                mSourcesCombo.addItem("<NONE AVAILABLE>");
            }
        } else {
            mSourcesCombo = new JComboBox();
            mSourcesCombo.addItem("<NONE AVAILABLE>");
        }
        
        mToolBar.add(mSourcesCombo);
    }
    



Красным выделены поля, удалив которые апплет в браузере отображается. Такое чувство, что он загружается бесконечно... зависает на этой строке.
Возможно при запуске из браузера не может найти библиотеку

protected final String DLL_NAME = "jtwain";
...
System.loadLibrary(DLL_NAME);


Подскажите что можно сделать?
...
Рейтинг: 0 / 0
26.04.2012, 09:51:53
    #37771669
maxkar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском апплета в браузере
Используйте лучше JavaWebStart. Там можно указать и использование native-библиотек. Ну или посмотрите статью , но не факт, что сейчас она будет работать. Использование native-кода из апплетов все же неправильно.
...
Рейтинг: 0 / 0
26.04.2012, 10:18:27
    #37771742
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском апплета в браузере
Смотрите Java Console в бразузере. Там должны быть ошибки. Почитайте про подписаные апплеты и использование нативного кода из них
...
Рейтинг: 0 / 0
26.04.2012, 10:19:00
    #37771746
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском апплета в браузере
maxkarИспользуйте лучше JavaWebStart. Там можно указать и использование native-библиотек. Ну или посмотрите статью , но не факт, что сейчас она будет работать. Использование native-кода из апплетов все же неправильно.
В Java 7, вроде, собирались разницу между JWS и апплетом убрать окончательно.
...
Рейтинг: 0 / 0
26.04.2012, 10:33:19
    #37771775
nemozar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском апплета в браузере
Добавил политику безопасности, и нормально отобразился аплет. Теперь возникла проблема, dll возвращает, что не удалось найти сканер.

Код: java
1.
2.
3.
grant {
permission java.security.AllPermission;
};




Из нетбинса все работает. В аплете список сканеров получаю, при попытке открыть окно сканирования выскакивает сообщение, что не найден сканер в системе. Такое чувство что еще прав не хватает ему.
...
Рейтинг: 0 / 0
26.04.2012, 11:24:50
    #37771885
nemozar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском апплета в браузере
Ошибка возникает в строке вызова окна винды для сканирования. Притом, пока не закрою приложения в браузере доступ к сканеру закрыт (получается приложение держит ДЛЛ похоже...). Может еще какие то разрешения должны быть? что бы с переферией через ДЛЛ работать?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    protected void acquireImage() {
        if (org.scavino.twain.JTwain.getInstance().isTwainAvailble()){
            if (mSourcesCombo.getItemCount() > 0 ){
                String _source = (String)mSourcesCombo.getSelectedItem();
                if (_source != null){
[color=red]                    String _filename = org.scavino.twain.JTwain.getInstance().acquire(_source);[/color]
                    if (_filename != null && _filename.length() > 0) {
                        File fChoosen = new File(_filename);
                        openFile(fChoosen);
                    } else {
                        System.out.println("Severe Error File Did not Acquire");
                    }
                } // end if
            } // end if
        } // end if
    }
...
Рейтинг: 0 / 0
27.04.2012, 14:34:14
    #37774289
nemozar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском апплета в браузере
Столкнулся с еще одной проблемой.
При попытке выполнить ResultSet rs = query.executeQuery("select * from site.xmldoc_addnewpic(3802)"); вылетает исключение под браузером, из среды все работает отлично.

Подключаюсь к базе
Код: java
1.
2.
3.
            Class.forName("org.postgresql.Driver");
            ce = DriverManager.getConnection("jdbc:postgresql://192.168.1.39/mfcrostov?user=postgres&password=2222");
            query = ce.createStatement();



И еще вопрос. Ничего не выводится, программа просто не отрабатывает, возможно ли стектрейс просмотреть из под браузера? или какую либо отладку провести, что бы проверить...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с запуском апплета в браузере / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]