当前位置: 首页 > 知识库问答 >
问题:

在WSDL中重写整个地址

张永嘉
2023-03-14

我已经使用以下指南创建了一个简单的spring-boot SOAP webservice:https://spring.io/guides/gs/production-web-service/

我正在将它部署到云服务中,但在它前面将有一个API管理层。

@Bean(name = "countries")
public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema countriesSchema) {
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
wsdl11Definition.setPortTypeName("CountriesPort");
wsdl11Definition.setLocationUri("http://example.com/ws");
wsdl11Definition.setTargetNamespace("http://spring.io/guides/gs-producing-web-service");
wsdl11Definition.setSchema(countriesSchema);
return wsdl11Definition;
}
@Bean(name = "countries")
public SimpleWsdl11Definition defaultWsdl11Definition(XsdSchema countriesSchema) {
SimpleWsdl11Definition wsdl11Definition = new SimpleWsdl11Definition();
wsdl11Definition.setWsdl(new ClassPathResource("countries.wsdl")); //this WSDL was edited to have the path I want
return wsdl11Definition;
} 

我正在用Maven构建。在这两种情况下,应用程序承载的WSDL都用它运行的服务器(例如http://localhost:8080/)替换主机名,然后使用URI的其余部分。

    <wsdl:service name="CountriesPortService">
    <wsdl:port binding="tns:CountriesPortSoap11" name="CountriesPortSoap11">
    <soap:address location="http://localhost:8080/ws"/>
    </wsdl:port>
    </wsdl:service>

如何设置/重写

共有1个答案

储修谨
2023-03-14

我认为您正在Web服务配置类的messageDispatcherServlet方法中使用setTransformWsdlLocations(true)。此设置将根据运行的环境转换URL。删除这一行,这样它将采用fals的默认设置&它不会重写。

 类似资料:
  • 我正在转换我的media wiki站点,使用nginx作为静态文件的前端,在PHP后端有apache。到目前为止,我已经得到了所有的工作,除了当我查看根目录“example.com”时,它试图提供一个目录列表,并给出一个403错误,因为我已经禁用了它,并且那里没有索引文件。 我现在使用的apache重写规则很简单: 我在nginx中尝试了类似的location指令,但它不起作用: 我的位置指令的其

  • 这里有一个wsdl服务链接:http://www.webservicemart.com/uszip.asmx?WSDL 如果我运行以下命令: wsimport-s src-d binhttp://www.webservicemart.com/uszip.asmx?WSDL 这个命令在/src目录下产生Java源代码并编译。相对于发出命令的目录的/bin目录中的类文件。这些生成的类可以用来访问远程w

  • 对于flex项,可以用重写。我正在寻找一种方法来重写flex项的。 如果您有一个flexbox容器,其中包含,但是您希望第一个项是,那么该如何实现呢?

  • 我正在创建一个待办事项列表项目。当用户单击删除按钮时,我正在尝试删除todo。我正在使用数组的filter方法删除单击的todo。但当我刷新时,删除的todo会返回。原因是它没有从本地存储中删除。javascript文件最底部的事件侦听器有问题。我试图用filter方法返回的任何内容覆盖数组,并将其保存到本地存储中,但仍然不起作用。 Javascript文件 超文本标记语言文件

  • 我有一个由Apache CXF WS生成的WSDL,如下所示 在application.java中 关于我的服务实现

  • 我想扫描一个整数,并把它放在一个while循环,以便如果输入了一个无效的条目,程序将要求输入另一个整数,但当我运行它时,它不允许我输入和新的整数,只是多次打印无效条目。