我正在尝试使用 Junit 4 已经有一段时间了。我的部分单元测试需要部署一个暴露一些 Web 服务的战争应用程序。我正在使用 Eclipse Helios,我在项目的构建路径中添加了两个不同的 jar,它们是: 1- jetty-all-8.1.3.v20120416.jar 2- servlet-api-3.0.jar
现在在我的测试类中,我正在运行以下代码来启动码头并部署包含我公开的 Web 服务的axis2.war webapp:
System.out.println("Initializing server");
Server server = new Server(8181);
System.out.println("Server initialized");
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setParentLoaderPriority(true);
webapp.setWar("C:\\axis2.war")
server.setHandler(webapp);
System.out.println("Starting server");
server.start();
System.out.println("Joining server");
server.join();
System.out.println("Finished starting Jetty...");
上述代码的输出如下:
Server initialized
Starting server
Joining server
尝试加入服务器会无限期地运行,并且不会引发任何异常。
在另一次尝试中,我在我的机器上下载了 jetty 8.1.3 web 服务器,并将axis.war 放在 webapps 目录下,然后从命令行使用 start.jar 启动 jetty。它从那里完美运行,我能够访问我公开的 Web 服务方法。
但是,我需要能够以编程方式启动和停止码头,并以编程方式部署我的 Web 应用程序。谁能告诉我可能是什么问题?
提前致谢。