【发布时间】:2010-04-01 16:02:06
【问题描述】:
我的 servlet 发生了一些奇怪的事情,我想我已经找到了原因,但我更加困惑。我使用Netbean6.7开发了一个Paypal IPN(即时支付通知)消息servlet,它默认在8080端口监听Paypal IPN消息。我使用了它网站上的一些示例 Java 代码,但是当它运行时,只有大约十分之一的消息通过了,而且它们看起来是正确的,但为什么只有十分之一呢?不是 100% 还是没有?
所以我在这里问了一些问题并得到了一些建议,其中一个特别指出我使用 Google 的 App Engine,所以我下载了它并运行了演示留言簿,而我的 IPN servlet 仍在 Netbeans 上运行,奇怪的事情发生了,在我从命令提示符输入“appengine-java-sdk-1.3.2\bin\dev_appserver.cmd appengine-java-sdk-1.3.2\demos\guestbook\war”,我在浏览器上转到以下网址“@987654321 @",我以为我会看到谷歌演示留言簿页面,不,我看到的是我2年前开发的另一个servlet:“Web Academy”,在线课程注册应用程序。
怎么会这样?我从来没有开始过它,而且我已经很多年没有接触过那个项目了。我猜是因为它也在侦听端口 8080,所以现在我明白为什么 IPN 消息只有十分之一的通过,因为另一个 servlet 也在该端口上侦听,并且可能已经收到了针对 IPN 的消息,或者这两个消息是如何servlet 的进程混合在一起,因此无法正确响应 Paypal,并且失败了。为了验证我的一些猜测。
我关闭了 Netbeans,并在提示符下再次运行 Google 留言簿,这次在我的浏览器上 http://localhost:8080/ 指向演示留言簿页面。
我的网址如下所示:
- [A] 贝宝 IPN:http://localhost:8080/PayPal_App/PayPal_Servlet
- [B] 网络学院:http://localhost:8080/
所以现在,我的问题是:
- 为什么当我运行 Paypal servlet 时“Web Academy”servlet 会自动启动?
- 如果我将 IPN 侦听端口更改为 8083,是否意味着我可以在我的 PC 上同时运行它们而不会相互影响?
- 但我还是不明白,[A] 和 [B] 看起来不一样,如果刷新 [A] 的页面,它应该显示 Paypal 内容,而另一个查看 [B] 的页面应该显示 Web学院的内容,这正是我启动 Netbeans 运行 Paypal servlet 时发生的情况,两个页面并排正确显示各自的内容而不会相互干扰,为什么 IPN 消息无法 100% 通过?
- 在 Netbeans 中如何将 8080 分配给 servlet [A] 并将端口 8083 分配给 servlet [B] ?
- 如何通过 Netbeans 关闭 Web Academy 的自动启动?
【问题讨论】:
-
请更好地格式化您的问题;它很难读。段落就像小马,它们是你的朋友!
-
并且,请知道您的 servlet 容器是什么。 NetBeans 不是 servlet 容器。
标签: java servlets jakarta-ee