Я создаю собственный веб-сервис для размещения в Mirth. Я хотел создать вложенный массив внутри этой структуры SOAP. Могут быть и другие способы создания SOAP, но я следую так, чтобы другие внешние JARS не использовались. В настоящее время это класс, который я делаю мой геттер и сеттер
public class ResultSpecification {
private String AccessionNumber;
private String AddtionalPatientHistory;
private long FacilityCode;
private String[] Code;
private String[] Description;
public String getAccessionNumber() {
return AccessionNumber;
}
public void setAccessionNumber(String AccessionNumber) {
this.AccessionNumber = AccessionNumber;
}
public String getAddtionalPatientHistory() {
return AddtionalPatientHistory;
}
public void setAddtionalPatientHistory(String AddtionalPatientHistory) {
this.AddtionalPatientHistory = AddtionalPatientHistory;
}
public long getFacilityCode() {
return FacilityCode;
}
public void setFacilityCode(long FacilityCode) {
this.FacilityCode = FacilityCode;
}
public String[] getCode() {
return Code;
}
public void setCode(String[] Code) {
this.Code = Code;
}
public String[] getDescription() {
return Description;
}
public void setDescription(String[] Description) {
this.Description = Description;
}
@Override
public String toString() {
String codeInString = Arrays.toString(Code);
String descriptionInString = Arrays.toString(Description);
return "{\"reportDetails\": {\"AccessionNumber\":" + "\"" + AccessionNumber + "\""
+ ", \"AddtionalPatientHistory\":" + "\"" + AddtionalPatientHistory.replaceAll("\"", "\\\\\"") + "\""
+ ", \"FacilityCode\":" + "\"" + FacilityCode + "\"" +"},\"Hl7Message\":[{\"Code\":" + "\"" + codeInString + "\"" + ", \"Description\":" + "\""
+ descriptionInString + "\"}]}";
}
}
Я назвал это как Массив внутри класса, вызывающего Webreceiver. Это будет класс, который я буду вызывать внутри Mirth, и я предоставлю super.webServiceReceiver.processData(String.valueOf(str));
в этом классе.
С текущим состоянием я получаю сообщение SOAP ниже.
<ray:data>
<!--Zero or more repetitions:-->
<TestResult>
<!--Optional:-->
<accessionNumber></accessionNumber>
<!--Optional:-->
<addtionalPatientHistory></addtionalPatientHistory>
<!--Zero or more repetitions:-->
<code></code>
<!--Zero or more repetitions:-->
<description></description>
</TestResult>
</ray:data>
Но я ожидаю структуру SOAP в следующем формате, где теги кодируются и будут заключены в массив другими XML-тегами. Я не уверен, как это построить в моем классе установщика-установщика. Когда я использую аннотации типа @XmlElement, это вызывает ошибку внутри веселья.
<Statuses>
<!--Zero or more repetitions:-->
<MessageStatus>
<!--Optional:-->
<Code />
<!--Optional:-->
<Description />
</MessageStatus>
</Statuses>