Как добавить внешний файл Jar в проект GWT - PullRequest
6 голосов
/ 03 марта 2010

Я собираюсь использовать jacob.jar. Но проблема в том, что в jar-файле jacob отсутствует файл xxx.gwt.xml. Поэтому я не могу унаследовать его в своем XML-файле проекта.

Как решить эту проблему? или GWT не позволяет нам добавлять внешний JAR-файл?

Ответы [ 6 ]

5 голосов
/ 29 апреля 2010

Я не решил проблему. Потому что я обнаружил, что другая библиотека GWT может выполнить мое требование. Но я получил одно предложение от GWT Forum. Я надеюсь, что это может помочь вам! Пожалуйста, смотрите ниже:

Blockquote Библиотека, которую вы пытаетесь использовать, предназначена для работы в Java ВМ, а не браузерный движок JavaScript. Вам нужен либо JavaScript библиотека, чтобы обернуть с JSNI, или библиотека Java, которая соответствует требования ниже. Google OpenID GWT, и вы увидите, как люди был в состоянии использовать OpenID с GWT.

Blockquote GWT java-> javascript compiler, используемый для создания клиентского кода браузера не переводит произвольную библиотеку Java для вас. С одной стороны, это ограничено эмулированием подмножества java JRE, поэтому любая библиотека может только используйте это подмножество функций Java JRE. Для двоих это работает на исходный код Java, поэтому любая библиотека, которую вы ожидаете использовать на стороне клиента должен быть упакован, чтобы включить его источник. Есть много библиотек люди упаковали для использования на стороне клиента GWT, но они упакован с использованием стандарта упаковки GWT с файлом описания xml, должен включать источник и использовать ограниченное подмножество JRE. http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsCompatibility.html

3 голосов
/ 03 марта 2010

Вам не нужно наследовать xxx.gwt.xml, если вы хотите использовать библиотеку в коде на стороне сервера (или в генераторах GWT). Если вы хотите использовать библиотеку в коде на стороне клиента, вам также необходимо наследовать xxx.gwt.xml, и если в библиотеке нет этого XML-файла GWT, он, вероятно, не будет работать с GWT (он не будет компилируемым компилятором gwt JS). В любом случае вы можете создать свой собственный xxx.gwt.xml, если хотите.

Peter

3 голосов
/ 03 марта 2010

Вам понадобится исходный код или xxx.gwt.xml, если вы планируете использовать любой из классов, включенных в jar. Вы можете использовать JAR без проблем на стороне сервера, хотя. См. http://www.vogella.com/articles/GWTModules/article.html с примером создания xxx.gwt.xml для классов jar.

0 голосов
/ 03 мая 2010

Guaz:

JACOB использует JNI для своей работы. Таким образом, классы Java JACOB должны загрузить jacob.dll. В документации JACOB это указано в http://danadler.com/jacob/ (см. Раздел «Загрузка»), в нем упоминается dll.

DLL должна быть помещена в каталог, на который ссылается переменная PATH. Вы также можете изменить значение системного свойства java.library.path. Здесь Как установить java.library.path из Eclipse , как вы можете сделать это в Eclipse.

0 голосов
/ 03 марта 2010

Ниже моя среда тестирования, я просто открываю новый проект gwt и изменяю на нем код на стороне сервера. Я добавлен в этот код: / ** * Реализация службы RPC на стороне сервера. * / @SuppressWarnings ( "последовательный") открытый класс GreetingServiceImpl расширяет реализации RemoteServiceServlet GreetingService {

public String greetServer(String input) {
    ActiveXComponent xl = new ActiveXComponent("Excel.Application");
    Object xlo = xl.getObject();

без ошибок после компиляции.

но когда я запускаю в режиме отладки, после "ActiveXComponent xl = new ActiveXComponent (" Excel.Application ");".

Затем он показывает это сообщение об ошибке: : "ava.lang.UnsatisfiedLinkError: нет jacob в java.library.path"

мой файл jar находится под: война \ WEB-INF \ Lib \ jacob.jar

0 голосов
/ 03 марта 2010

Вы можете использовать внешние jar-файлы, и если я вас правильно понял, вам не нужно вставлять их в файл xxx.gwt.xml. Например, я использую maven для сборки своего проекта, а внешние файлы jar определены как зависимости в pom.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...