【发布时间】:2017-06-22 11:22:15
【问题描述】:
我正在使用 EJB、JSF 和 JPA 开发我的第一个 Web 应用程序。我使用理性的开发人员进行开发和测试,我们的服务器是带有 websphere 8 的 iSeries。我无法访问测试和生产服务器,我只能管理我本地安装的用于开发目的的服务器。
所以现在,我的 Web 应用程序在我的本地安装上运行良好,但我无法让它在生产或测试服务器上运行。我使用 Rational Developer 生成 EAR,我们的系统管理员将它发布到服务器上,日志显示没有错误(一切似乎都很好),但是当我尝试通过浏览器访问应用程序时,我收到了消息
404 未找到:在此服务器上未找到请求的 url
在语言环境中,我在
下安装了应用程序http://localhost:9080/<contextroot>/pages/login.jsf
我尝试了几个不同的网址,但总是收到错误消息:
http://<production_server_url>/<contextroot>/pages/login.jsf
http://<production_server_url>:80/<contextroot>/pages/login.jsf
http://<production_server_url>:9080/<contextroot>/pages/login.jsf
http://<production_server_url>/<contextroot>/
我要求系统管理员将他在服务器上安装应用程序时所经历的步骤的屏幕截图发送给我,以查看配置是否存在一些差异,但一切都是一样的。上下文根是正确的。
我们还有其他在服务器上运行的 Web 应用程序,但这些都是简单的 .war 文件,这是我们尝试部署的第一个 EAR(即,websphere 将 war 文件封装到 ear 项目中以便运行它们)
我们不知道该怎么做,有人可以帮忙吗?
最困扰我的是部署本身很顺利,应用程序已安装并运行,我就是无法访问它
谢谢
【问题讨论】:
-
通常在生产服务器“前面”有一些东西(例如负载平衡器、路由器……在 9x% 的“Apache”中),系统管理员必须确保 http:/ /
/[/ever/your/entry/point>][:80:443]?被路由到 http://localhost:9080/<contextroot>/whatever/developer/considers/entrypoint..这是第一次发布吗?? -
iSeries 有时会使用一组时髦的端口而不是默认端口,因此这可能值得一看。检查您的配置文件的 config/cells/
/nodes/ /serverindex.xml,找到服务器的 serverEntries 部分,并查找名为“WC_defaulthost”(或“WC_defaulthost_secure”,如果您使用安全性)的端点,尽管您在上面提到的端口 9080 暗示您不是)。这将有一个适合您服务器的“端口”值。 -
@xerx593 是的,这是我们为此应用程序制作的第一个版本
-
@Jarid 会检查的,谢谢!我只是想强调一下,我在本地 websphere 安装上使用端口 9080(即在我编写和测试代码的电脑上),生产服务器很可能有某种安全设置
-
@Jarid 在 serverindex.xml 中找到了 WC_defaulthost 并且使用该端口确实可以提供更好的结果!将检查应用程序的较新版本(自上次部署以来我继续进行开发)并查看它是否有效。我想知道:我看到生产服务器和测试服务器之间的端口不同,系统管理员可以在哪里配置某种路由以避免使用在 url 中明确说明端口?
标签: jsf web-deployment websphere-8