0

我正在制作一个宁静的 Web 服务Service A,它又调用另一个休息服务Service B服务 B是打包为战争档案的外部资源。该服务在WEB-INF/switchyard.xml中包含一个常规的 switchyard 文件。可悲的是,switchyard 文件中的属性是相当静态的,即代理设置,这会干扰我的测试。我想做的是编辑 switchyard.xml 文件,并删除部分以适应不必要的代理设置。

这是我为Service 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;
}

我能想到的覆盖Service 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>
4

0 回答 0