Проблема интеграции GWT и OSGi - PullRequest
2 голосов
/ 24 мая 2011

У меня проблема с интеграцией GWT в контейнер OSGi Equinox.Веб-страница точки входа работает.Я вижу свою первую страницу.Однако, когда я нажимаю на кнопку, чтобы реализовать вызов сервера, он не запускается.Я работаю с Firefox и у меня есть firebug.Затем, когда я вижу сетевое поле, я получаю следующее сообщение:

Content-Type    text/html; charset=iso-8859-1
Cache-Control   must-revalidate,no-cache,no-store
Content-Length  1431
Server  Jetty(6.1.x)

Host    localhost
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Content-Type    text/x-gwt-rpc; charset=utf-8
X-GWT-Permutation   CCF6A1341D371C4123AE827BC29EA602
X-GWT-Module-Base   http://localhost/zbapp/zb_app/
Referer http://localhost/zbapp/ZB_app.html
Content-Length  174
Pragma  no-cache
Cache-Control   no-cache

Почтовый метод:

7|0|6|http://localhost/zbapp/zb_app/|A31E1254E17F9AD731856D6BE34124A2|main.java.com.gwt.app.client.GreetingService|greetServer|java.lang.String/2004016611||1|2|3|4|2|5|5|6|6|

И ответ:

<code><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 ProxyServlet: /zbapp/zb_app/greet</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /zbapp/zb_app/greet. Reason:
<pre>    ProxyServlet: /zbapp/zb_app/greet
Работает на причале: // Проблема с доступом к / zbapp / zb_app / greet.Причина: ProxyServlet: / zbapp / zb_app / greet

Похоже, вызов выполнен, но к нему нет доступа.Я не знаю проблемы.Может ли кто-нибудь помочь мне?Мне нужно решить его, чтобы интегрировать с другими службами.

Большое спасибо!

С уважением!

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Я не знаю, как работать с Spring, но я интегрировал пакет OSGi с GWT, и, надеюсь, это поможет вам сделать это.

Посмотрите на это: http://bryanhunt.wordpress.com/2010/05/14/osgi-as-a-web-application-server/. В руководстве показано, как шаг за шагом интегрировать сервлет в комплект OSGi.Затем взгляните на эту http://wiki.eclipse.org/Google_Web_Toolkit_and_Equinox. Эта ссылка в значительной степени объясняет все, что вам нужно знать для интеграции GWT в комплект OSGi, кроме того, как обернуть банки GWT, что легко сделать:

В eclipse выберите файл> новый проект> плагин разработки> плагин из существующего архива jar.Затем выберите add external и выберите свой jar-файл GWT-пользователя (и GWT-dev, если хотите, но это не обязательно только для серверной части).Вы можете выбрать, извлекать банки или нет, это не имеет значения.Файл манифеста будет создан автоматически и экспортирует все функции GWT.Затем вам нужно просто потребовать этот пакет в файле манифеста вашего пакета сервлетов.

Вторая незначительная проблема с (последним) учебником состоит в том, что он заявляет, что вам нужно удалить строки в манифесте пакета GWT (ту, которую вы только чтосделанный из jar), который экспортирует javax.servlet. * Это правильно, но когда вы сделаете это, вы также должны добавить строку Require-Bundle: javax.servlet в манифест пакета GWT, в противном случае вы получите исключение загрузчика классов.

Надеюсь, это поможет.

0 голосов
/ 25 мая 2011

Ну, я решил первую проблему, я добился !!!Я добавил флаг расширения в файл plugin.xml как:

<extension point="org.eclipse.equinox.http.registry.servlets">
    <servlet alias="/zbapp/zb_app/greet" class="main.java.com.gwt.app.server.GreetingServiceImpl" />
</extension> 

Однако моя ошибка меняется на 500. Причина:

java.lang.NoClassDefFoundError: org/springframework/asm/ClassVisitor

Но я развернул org.springframeworkПакет .asm, а также я добавил в тег org.springframework.asm теги Import-Packages.

Версия весны 3.1.0, у меня нет, почему так происходит?Я думаю только, если ошибка связана с версией Spring.

Спасибо!

...