我正在制作一个宁静的网络服务服务A ,然后拨打另一个休息服务服务B 。 服务B 是打包为war存档的外部资源。此服务包含 WEB-INF / switchyard.xml 中的常规switchyard文件。遗憾的是,switchyard文件中的属性是静态的,即代理设置,这会干扰我的测试。我想要做的是编辑switchyard.xml文件,并删除部分以适应不必要的代理设置。
以下是我为服务B :
创建可部署的方法@Deployment(name = "my-service", order = 1, testable = false)
public static Archive<?> svcMyDeployable() {
final File file = Maven.configureResolver().fromFile(System.getProperty("settings.xml"))
.loadPomFromFile("pom.xml").resolve("com.sample.service:cool-service:war:?")
.withoutTransitivity().asSingleFile();
final WebArchive war = ShrinkWrap.createFromZipFile(WebArchive.class, file);
final WebArchive archive = ShrinkWrap.create(WebArchive.class, "cool-service.war").merge(war);
return archive;
}
我可以考虑在服务B 中覆盖switchyard.xml文件属性的唯一方法是将 WEB-INF / switchyard.xml 替换为一个自定义的。我可以这样做:
archive.delete("/WEB-INF/switchyard.xml");
archive.addAsWebInfResource("custom-switchyard/switchyard.xml");
有没有更好的方法来实现这一目标?我真正需要做的就是从原来的switchyard.xml文件中删除6行:
<http:proxy>
<http:host>10.10.10.10</http:host>
<http:port>9999</http:port>
<http:user>username</http:user>
<http:password>password</http:password>
</http:proxy>