【问题标题】:Set name of PortType for Axis2 Web Service设置 Axis2 Web 服务的 PortType 名称
【发布时间】:2026-01-19 23:15:01
【问题描述】:

我正在使用 Eclipse 和 WSO2 开发工具创建一个 Axis2 Web 服务。我将 Web 服务导出为“.aar”文件,并将其安装在 WSO2 应用程序服务器中。

自动生成 WSDL,Porttype 的名称始终为 [ServiceName]PortType。

有没有办法在将 WS 开发为自定义名称时或在我部署之后更改 PortType?我知道我可以使用一些参数设置 Jax-WS WebService 的 PortType,但是 Jax-WS 不太适合我的用例。

感谢您的回答。

【问题讨论】:

    标签: jax-ws axis2 wso2 porttype


    【解决方案1】:

    是的。

    可以通过将 WSDL 文件与您的自定义端口名称相关联来覆盖默认端口类型命名约定。

    1. 使用 Developer Studio 实现您的 Axis2 服务。

    2. 完成服务实现后,右键单击 Axis2 服务项目并选择“Generate WSDL”。

      然后它会在 src/main/resources 文件夹中生成 WSDL 文件。

    3. 然后您需要将生成的 WSDL 文件移动(剪切和粘贴)到您的 services.xml 文件所在的 src/main/resoures/META-INF 文件夹中。

    4. 然后您可以修改和更新 WSDL 文件的 portType 元素。

    5. 完成对 WSDL 文件的修改后,您需要打开 src/main/resoures/META-INF 位置中的 services.xml 文件并更新 services.xml 文件带有以下参数。

    <service ...>
        <parameter name="useOriginalwsdl">true</parameter>
        .
        .
        .
    </service>
    

    现在您可以使用 Developer Studio 将服务导出为 Axis2 存档(aar 文件),并将生成的 Axis2 服务部署到 WSO2 应用服务器或任何其他合适/兼容的 Web 服务容器中。

    希望这会有所帮助!

    感谢和问候,

    哈莎娜

    【讨论】:

    • 您好,感谢您的回答,我知道我可以通过将自定义 .wsdl 上传到 WSO2 AS 本地注册表并设置参数“useOriginalwsdl=true”来覆盖服务的 WSDL。您的方法是一种混合使用自下而上的方法来最初生成 wsdl,但不是自定义 wsdl。