1

一般来说,我是 J2EE 和相关内容的新手。我正在尝试将特定的 Web 应用程序从 Sun One 服务器部署移动到 JBoss。该应用程序充满了许多 servlet,每个 servlet 都重定向到另一个。有太多的 servlet 让我无法在 web.xml 中分别输入每个 servlet 类到 URL 映射的映射。应用程序代码有许多重定向,它们在重定向 URL 中命名 servlet 类名称本身。到目前为止,当我在 JBoss 上运行它时,重定向到 URL 中带有 servlet 类名的 URL 似乎在 JBoss 上不起作用(它给出了 404:未找到,可能是因为 web.xml 中没有映射)。那么是否有任何配置设置可以设置为允许这种情况发生,或者应该在 web.xml 中手动输入每个 URLpattern-to-Servlet 映射?

谢谢你。

4

4 回答 4

2

有两种解决方案。

  • 正如我们所知,JBoss 在后台使用 Tomcat 作为 servlet 容器。您可以启用调用者 servlet,这将使您免于在 web.xml 中映射全部内容。但请注意,这样做会很幼稚,而且一点也不鼓励

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

我希望你明白我的意思。

于 2009-02-04T02:23:57.013 回答
0

不知道你是什么意思

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

您在 servlet 类中是否有硬编码的 url?多少个servlet?如果您有硬编码的网址,它们可能都已损坏,因为上下文略有不同,或者应用程序名称等。你可以发布一个例子吗?

于 2009-02-03T22:17:00.413 回答
0

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

谢谢,马诺伊

于 2009-02-03T22:39:42.597 回答
0

抱歉,URL 模式看起来像这样http://FQDN_SERVER.com/servlet-classname?arg1=ABCD&arg2=XYZ

于 2009-02-03T22:41:16.557 回答