我最近开始和大约40个其他开发人员一起做一个项目。我们和Apache Felix一起使用OSGi。我们通过maven-pax-plugin使用Maven进行构建和部署。OSGi和pax对我来说都是非常新的,所以我不知道关于项目设置的任何细节。
要部署到我自己的计算机上,我使用以下命令
mvn clean install
mvn pax:provisionpax:provision命令启动pax-runner,日志中的最后几行如下:
-> Provision bundle [...., at default start level, bundle will be started, bundle will be loaded from the cache]
-> Preparing framework [Felix 4.0.3]
-> Downloading bundles...
-> Using execution environment [NONE]
-> Runner has successfully finished his job!
Listening for transport dt_socket at address: 5005在一些正在使用的pc上,在这行之后大约需要30秒到1分钟,然后Apache Felix才会启动,并且可以通过浏览器访问应用程序。然而,在我同事的pc上,这需要大约8-9分钟,而在我的电脑上,这需要大约16分钟。
在这16分钟内,没有过多的CPU使用或网络流量。看起来好像什么都没发生。
我曾尝试将日志记录级别更改为debug,这会给我提供大量有关pax-runner的信息,但在“侦听传输dt_socket...”之后。台词,这是16分钟的默哀。在此期间,我可以将远程调试器(IntelliJ)连接到服务器,因此一定有什么东西在运行。
我的同事似乎都不知道在这段时间里发生了什么,为什么我们两个人花了这么长时间,而其他人却匆匆而过。谷歌也没有给我任何线索,所以我想我应该在这里问一下。
这是一个相当复杂的项目设置,所以我想一次编写小块程序并进行大量测试,但必须等待16分钟才能测试一个小的更改,这当然会扼杀生产力。
我希望有人能帮我解决这个问题。谢谢!
发布于 2014-01-29 03:11:50
看看这些捆绑包是否都被很好地带出来了。通过访问Felix控制台并发出"ps“、"scr info”命令或放入put控制台。
一旦所有包都被解析和激活,然后开始查看特定于应用程序的日志/事件,以确定它是否可操作。
发布于 2016-07-18 19:45:56
我认为您已经启用了调试代理,并将suspend选项设置为true。在你的poms中寻找类似这样的东西:
<provision>
<param>--vmOptions="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"</param>
</provision>将suspend=y更改为suspend=n。
我知道这是一个老问题,但也许有人会有类似的问题。
https://stackoverflow.com/questions/20194944
复制相似问题