Multi-Module Project and Servlet Mappings

已查看 66 次
跳至第一个未读帖子

rsimon

未读,
2011年1月13日 07:28:182011/1/13
收件人 Google Web Toolkit
Dear all,

I have a project which consists of multiple modules. Basically, it's
four separate GWT applications which share some common code. There's a
separate module for each of the four applications, plus a 'core'
module for the common functionality.

Now my problem: The common functionality includes server-side RPC
endpoints. I have defined the servlet paths for those endpoints in
the .gwt.xml file of my core module as

<servlet path='/endpointA' class="..."/>
<servlet path='/endpointB' class="..."/>

and so on. Now - when I inherit the core module in my app modules, GWT
insists that the endpoints are mapped to

"/<AppName>/endpointA" rather than just "/endpointA"

So far so good. But as a result, I need to provide 4 servlet mappings
in my web.xml, each pointing to the same service impl class. E.g.
something like this:

<servlet>
<servlet-name>endpointA<servlet-name>
<servlet-class>my.gwtapp.server.EndpointAServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>endpointA</servlet-name>
<url-pattern>/AppOne/endpointA</url-pattern>
<url-pattern>/AppTwo/endpointA</url-pattern>
<url-pattern>/AppThree/endpointA</url-pattern>
<url-pattern>/AppFour/endpointA</url-pattern>
</servlet-mapping>

Ok, it's not a showstopper. But I can't believe there's no better way
to share servlets across modules than by repeating the mappings for
each module?

Any advice appreciated!

Y2i

未读,
2011年1月13日 19:42:142011/1/13
收件人 google-we...@googlegroups.com
What if you remove <servlet/> from *.gwt.xml and configure servlets only from web.xml?

The xml reference says that 
The <servlet> element applies only to GWT's embedded server server-side debugging feature.
NOTE: as of GWT 1.6, this tag does no longer loads servlets in development mode, instead you must configure a WEB-INF/web.xml in your war directory to load any servlets needed.


已删除帖子

rsimon

未读,
2011年1月14日 03:37:372011/1/14
收件人 Google Web Toolkit
Ouch. Looks like I should have RTFM ;-) Thanks for the hint!

This solved most of my problem. I was able to map the servlets to /
<endpointName>, rather than being forced to create multiple /
<moduleName>/<endpointName> mappings. The applications still made
their RPC requests to <moduleName>/<endpointName>, though.

However I could fix that by changing the RemoteServiceRelativePath
configuration in my client side service interface, like so:

RemoteServiceRelativePath("../<endpointName>") instead of
("<endpointName")

Not sure if this is 100% clean. But it did the trick.

newnoise

未读,
2011年2月2日 16:26:322011/2/2
收件人 Google Web Toolkit
Hi,

I'm having kind of the same problem, but dont understand what you
actually did. Could you maybe post a sample web.xml?

Thanks in advance!
Tom

newnoise

未读,
2011年2月3日 05:34:322011/2/3
收件人 Google Web Toolkit
Got it. Reading your post several times got me to it. Thanks.
回复全部
回复作者
转发
0 个新帖子