当另一个服务依赖它时,我该如何等待服务

时间:2009-07-21 18:54:47

标签: java web-services deployment jboss

我即将将两个不同但依赖的战争文件部署到一个jboss中(AS 4.2.x GA) 一个实现了一些Web服务(jax-ws),通过它们公开它们的接口 一个wsdl。另一个是使用上述网络服务的(比方说)网络前端。当我同时将两个warfiles放到$ JBOSS_HOME / server / default / deploy时,我可以看到第一个被部署(不知何故),但第二个被卡住,整个jboss没有响应。 当我一个接一个地部署它们时,一切都很好(它只是起作用:)。

  • 有没有办法告诉jboss warfile2.war的部署必须等待 for warfile1.war在开始部署warfile2.war?

  • 之前完成部署
  • 是否有办法以编程方式确定部署的“服务” 准备好了吗?

  • 我想知道当两场战争都存在且jboss重启时会发生什么?

亲切的问候, Jay Wee。

3 个答案:

答案 0 :(得分:1)

首先回答您的上一个问题,JBoss将按字母顺序部署其部署目录的内容。如果将两个WAR文件放入正在运行的服务器的部署目录中,结果是不可预测的,但应该是安全的,所以我不确定那里发生了什么。

顺便说一下你描述了依赖关系,听起来好像当用户使用前端WAR时,它会调用Web服务WAR,而在启动时它们之间没有链接?任何人都可以在Web服务WAR仍在部署时尝试使用前端WAR吗?哪个WAR按字母顺序排在第一位?

作为一种可能的解决方案,当您有两个相互依赖的WAR文件时,您应该考虑将它们打包到一个EAR文件中。这样JBoss就会以受控的方式将它们一起部署。

答案 1 :(得分:0)

如何在Web前端实现一个侦听器,等待对localhost上的wsdl的成功头部请求?

答案 2 :(得分:0)

多数民众赞成。 backend.war在frontend.war之前部署。

我将它部署在我的本地jboss上,没有其他人可以访问它。

当我调试jboss时,我看到的是前端访问后端wsdl(https://localhost:9999/app/svc?wsdl)挂起而jboss尚未就绪。

在Arne Burmeister:听众的做法并没有帮助。在过程的早期调用侦听器:我可以连接到backendWsdlUrl但backenWsdlUrl.getConnection()。getOutputstream()挂起

我想我会试试耳朵。有没有关于如何的良好文档 把东西收拾在一起? (斯卡弗曼已经指出我正确的方向)

非常感谢所有帮助到目前为止的人, 扬