2011-05-24 117 views
2

我有一个整合GWT到OSGi Equinox容器的问题。入口点网页运行。我看到了我的第一页。但是,当我点击一个按钮来实现服务器调用时,它不会运行。 我使用Firefox,我有萤火虫。然后,当我看到网络领域,我得到了一个消息:整合GWT和OSGi的问题

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| 

和响应:方法

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 

后进行

<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 

它看起来的电话,但它可以不能访问。我不知道这个问题。有人能帮助我吗?我需要解决它与其他服务集成。

非常感谢!

问候!

回答

2

我不知道如何使用Spring,但我已经集成了一个与GWT的OSGi包,希望这会帮助你做到这一点。

看一看这个: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罐子,这很容易做到:

在eclipse中,go file> new project> plug in development> plug从现有的jar归档中。然后选择添加外部并选择你的GWT用户jar(如果你愿意,可以选择GWT-dev,但这对于服务器端来说不是必须的)。您可以选择是否提取罐子,这没关系。清单文件将自动生成并导出所有GWT功能。您应该只需要在您的servlet包的清单文件中包含这个包。

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

我希望这会有所帮助。

0

那么,我解决了第一个问题,我实现了!我已经加入了扩展标志上的文件的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包。

春天的版本是3.1.0,我不这是为什么会发生?我只认为如果错误是由于Spring的版本。

谢谢!