【问题标题】:Problem integrating GWT and OSGi集成 GWT 和 OSGi 的问题
【发布时间】:2011-05-24 12:13:51
【问题描述】:

我在将 GWT 集成到 OSGi Equinox 容器时遇到问题。入口点网页运行。我看到了我的第一页。但是,当我点击一个按钮来实现服务器调用时,它并没有运行。 我使用 Firefox,我有萤火虫。然后,当我看到网络字段时,我收到下一条消息:

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|

然后回应:

<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</pre></p><hr /><i><small>Powered by     Jetty://</small></i><br/>                                                                                         
</body>
</html>


Problem accessing /zbapp/zb_app/greet. Reason:
ProxyServlet: /zbapp/zb_app/greet

看起来调用已执行,但无法访问。我不知道问题所在。有人可以帮助我吗?我需要解决它以将其与其他服务集成。

非常感谢!

问候!

【问题讨论】:

    标签: gwt osgi equinox


    【解决方案1】:

    我不知道如何使用 Spring,但我已将 OSGi 捆绑包与 GWT 集成,希望这将帮助您。

    看看这个:http://bryanhunt.wordpress.com/2010/05/14/osgi-as-a-web-application-server/。本教程逐步展示了如何将 servlet 集成到 OSGi 包中。然后看看这个http://wiki.eclipse.org/Google_Web_Toolkit_and_Equinox。该链接几乎解释了将 GWT 集成到 OSGi 包中所需了解的所有内容,以及如何包装 GWT jar,这很容易做到:

    在 Eclipse 中,从现有的 jar 存档中转到文件 > 新项目 > 插件开发 > 插件。然后选择添加外部并选择您的 GWT 用户 jar(如果需要,还可以选择 GWT-dev,但这对于仅服务器端的东西不是必需的)。您可以选择是否提取罐子,没关系。清单文件将自动生成并导出所有 GWT 功能。然后,您应该在 servlet 包的清单文件中简单地要求这个包。

    (最后一个)教程的第二个小问题是他指出您需要删除 GWT 包的清单(您刚刚从 jar 中创建的那个)中导出 javax.servlet 的行。* 这是正确的,但是执行此操作时,您还应该将行 Require-Bundle: javax.servlet 添加到 GWT 包的清单中,否则您将获得类加载器异常。

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      嗯,我解决了第一个问题,我实现了!!!我在文件 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 包,并且我已经在 Import-Packages 标签中添加了 org.springframework.asm 包。

      spring的版本是3.1.0,我不知道为什么会这样?我只认为错误是由于 Spring 版本引起的。

      谢谢!

      【讨论】:

        猜你喜欢
        • 2014-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        • 2010-09-23
        • 2017-10-08
        • 2011-06-10
        相关资源
        最近更新 更多