You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mirth自定义SOAP WebService中创建嵌套数组

在Mirth自定义WebService中实现SOAP嵌套数组的解决方案

我懂你现在的处境——在Mirth里开发自定义WebService,想要在SOAP结构里搞嵌套数组,还特意避开外部JAR包,已经写了带Getter/Setter的实体类但卡在嵌套结构这一步对吧?

首先你当前的实体类里用了String[] Code和String[] Description这种分开的一维数组,但如果要实现嵌套数组(也就是数组元素是包含多字段的对象),这种方式肯定满足不了需求。咱们得调整实体类的结构,用嵌套实体类的方式来实现,这样Mirth内置的SOAP序列化机制就能自动识别出嵌套结构,完全不用依赖外部包。

步骤1:定义嵌套的子实体类

把关联的Code和Description字段封装成一个独立的子实体类,这样每一组代码和描述就变成了一个对象:

public class CodeDescription {
    private String Code;
    private String Description;

    // Getter方法
    public String getCode() {
        return Code;
    }

    public String getDescription() {
        return Description;
    }

    // Setter方法
    public void setCode(String code) {
        Code = code;
    }

    public void setDescription(String description) {
        Description = description;
    }
}

步骤2:修改主实体类,替换为子实体数组

把原来分开的两个一维数组,替换成子实体类的数组,这样就形成了嵌套数组的结构:

public class ResultSpecification {
    private String AccessionNumber;
    private String AddtionalPatientHistory;
    private long FacilityCode;
    // 用嵌套实体数组替代分开的字段数组
    private CodeDescription[] codeDescriptions;

    // AccessionNumber的Getter/Setter
    public String getAccessionNumber() {
        return AccessionNumber;
    }

    public void setAccessionNumber(String accessionNumber) {
        AccessionNumber = accessionNumber;
    }

    // AddtionalPatientHistory的Getter/Setter
    public String getAddtionalPatientHistory() {
        return AddtionalPatientHistory;
    }

    public void setAddtionalPatientHistory(String addtionalPatientHistory) {
        AddtionalPatientHistory = addtionalPatientHistory;
    }

    // FacilityCode的Getter/Setter
    public long getFacilityCode() {
        return FacilityCode;
    }

    public void setFacilityCode(long facilityCode) {
        FacilityCode = facilityCode;
    }

    // 嵌套数组的Getter/Setter
    public CodeDescription[] getCodeDescriptions() {
        return codeDescriptions;
    }

    public void setCodeDescriptions(CodeDescription[] codeDescriptions) {
        this.codeDescriptions = codeDescriptions;
    }
}

步骤3:Mirth WebService配置注意事项

  • 把这些实体类放在Mirth的自定义代码库中,或者直接在WebService的代码块里定义,确保Mirth的类加载器能正常加载它们。
  • 当你在WebService中返回ResultSpecification对象时,Mirth内置的SOAP序列化器会自动把嵌套数组转换成对应的SOAP结构,示例结构大概是这样:
TEST-001 1001 ICD-10:J45 支气管哮喘 ICD-10:I10 原发性高血压

额外提示

如果需要更复杂的多层嵌套结构,只需要按照同样的逻辑继续封装子实体类就行,Mirth基于JAX-WS的轻量SOAP实现完全支持这种嵌套实体数组的序列化,完全符合你不想依赖外部JAR的需求。

内容的提问来源于stack exchange,提问作者Vibin Guevara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:27:45