关于servlet映射的基本问题

时间:2009-02-03 21:47:41

标签: java redirect servlets java-ee jboss

我是J2EE和相关的新手。我试图将特定的Web应用程序从Sun One服务器部署移动到JBoss。应用程序中充满了许多servlet,每个servlet都会重定向到另一个servlet。 有太多的servlet让我在web.xml中单独输入每个servlet类到URL映射之间的映射。应用程序代码有许多重定向,它们在redirect-URL中命名servlet类名。截至目前,当我在JBoss上运行它时,URL中的servlet类名重定向到URL似乎不适用于JBoss(它给出了404:Not Found,可能因为web.xml中没有映射)。那么我可以设置任何配置设置以允许这种情况发生,或者应该手动输入web.xml中的每个URLpattern-to-Servlet映射?

谢谢。

4 个答案:

答案 0 :(得分:2)

有两种解决方案。

  • 我们知道JBoss使用Tomcat作为servlet容器。您可以启用调用程序servlet,这将使您无法在web.xml中映射整个批次。但要注意,这样做是天真的,not at all encouraged

  • 其次,您可以编写另一个servlet /过滤器,并在web.xml中为每个url模式映射,可能是。然后你的新servlet可以将请求转发给它应该的任何servlet。

我希望你明白我的意思。

答案 1 :(得分:0)

不确定你的意思

  

应用程序代码有许多重定向,它们在redirect-URL中命名servlet类名称

你在servlet类中有硬编码的URL吗?多少个servlet?如果你有硬编码的网址,他们可能都会因为上下文略有不同而破坏,或者是appname等。你能发一个例子吗?

答案 2 :(得分:0)

嗯,代码中有一些硬编码的URL,但即使我直接在浏览器中键入正确的URL,我仍然得到404.大约有30个servlet(保守的近似值)。例如:http://FQDN_SERVER.com/?arg1 = ABCD& arg2 = XYZ 这里的servlet-classname实际上是没有“.class”扩展名的servlet的类名,这可能不是一个好习惯。但代码中充满了这样的重定向,如果我必须更改它,那么我必须在web.xml中为每个servlet添加一个新的url-pattern,并为每个servlet构造一个新的红色矩形URL。那么无论如何我可以避免这种情况,或者我是否必须经历上述提到的痛苦?

谢谢, 的Manoj

答案 3 :(得分:0)