控制Axis2 Web服务的URL

时间:2011-09-26 17:55:52

标签: web-services axis2

使用代码优先方法(Axis2生成URL的位置)时,是否可以配置Axis2 Web服务的URL格式?特别是,我们希望将端口名称保留在URL之外。

我们有一个使用Axis2使用代码优先方法构建的Web服务。这意味着WSDL是从Java类及其注释生成的。

目前,网络服务网址为:

http://www.example.com/services/AvailabiltyService.AvailabilityServicePort

但我们希望将网址缩短为:

http://www.example.com/services/AvailabiltyService

生成的WSDL的<service>元素目前如下所示:

<service name="AvailabilityService">
    <port name="AvailabilityServicePort" binding="tns:AvailabilityServicePortBinding">
        <soap:address location="http://www.example.com/services/AvailabilityService.AvailabilityServicePort/"/>
    </port>
</service>

根据我的理解,URL的确定如下:

  1. “/ services /”部分在web.xml文件中指定。在web.xml文件中指定了模式“/ services / *”,以将匹配该模式的所有请求路由到AxisServlet。
  2. “AvailabiltyService”部分是服务名称。它默认为@WebService注释的“name”参数的值,并附加了“Service”一词。这可以通过在@WebService注释上包含“serviceName”参数来覆盖。在我们的例子中,我们在@WebService注释中包含了“serviceName”参数,其值为“AvailabilityService”。
  3. “AvailabiltyServicePort”部分是端口名称。它默认为服务名称,并附加单词“Port”。这可以通过在@WebService注释上包含“portName”参数来覆盖。在我们的例子中,我们没有在@WebService注释中包含“portName”参数。
  4. 我意识到如果我们使用契约优先方法,我们将控制URL,我们自己编写WSDL,但我们更愿意继续使用代码优先方法。

    感谢您的时间。

0 个答案:

没有答案