如何更改WSDL soap地址位置,特别是url的上下文部分?

时间:2017-09-04 10:17:04

标签: java web-services soap wsdl jboss-eap-6

我在这里使用java第一种方法来创建Web服务。

我在JBOSS EAP 6.0中使用Endpoint api Endpoint.publish(address,SampleWebService)使用JAX-WS公开了一个Web服务。

无论我在上述发布方法中为地址字段提供什么价值,它都没有关系,即我没有看到它的影响。 上面的SampleWebService是我的Web服务实现类。 部署war文件后,我将在以下位置生成WSDL文件。

  

%JBOSS_HOME%/独立/数据/ WSDL / MyProjectName-1.0-SNAPSHOT.war

以上生成的WSDL文件包含soap:address location =" http://localhost:8080/MyProjectName-1.0-SNAPSHOT/SampleWebService?wsdl" />

@webService(serviceName="SampleWebService")
public class SampleWebService {
    //Implementation specific logic
}

有没有办法可以更改上下文,即在soap地址位置有MyProjectName而不是MyProjectName-1.0-SNAPSHOT,以便最终的肥皂地址位置如下所示

  

soap:地址位置=   " http://localhost:8080/MyProjectName-1.0-SNAPSHOT/SampleWebService?wsdl" />

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。

  

我想要的只是更改根上下文名称,以便我可以提供   我自己的名字,而不是默认的war文件名(战争的完整名称   文件不包括.war扩展名)

为了更改war文件的根上下文,即我的war文件名,在这种情况下,我在我的web应用程序WEB-INF文件夹中需要jboss-web.xml文件,我可以在其中指定我想要的任何名称。

感谢这篇changing context root name帖子,它帮助我找出了我的案例的解决方案。

现在jboss-webapp.xml包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="  
      http://www.jboss.com/xml/ns/javaee  
      http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
    <context-root>MyProjectName</context-root>
</jboss-web>

上述更改有助于我获取所需的肥皂地址位置网址。 即&amp; ltsoap:地址位置=&#34; http:// localhost:8080 / MyProjectName / SampleWebService?wsdl&#34; /&GT;