Mirth이 ActiveMQ JMS Topic에서 Java 객체를 수신 중입니다. 소스 커넥터 인바운드 데이터 유형을 으로 설정했습니다. 구분 된 텍스트의 출생 채널 및 커넥터 유형이 JMS 리더입니다. 이제 preprocessor
단계에서 내가 XML.I로이 자바 객체가이Mirth의 전처리 기 (preprocessor phase)에서 XML에 자바 객체 마샬링?
logger.info("incoming data "+message);
같은 로거를 넣어 가지고 그리고 지금 내가 자바를 마샬링에 대한 사용자 정의 Java 클래스를 호출하고 240aaf81
@OrderDetails의를 인쇄 마샬링 할 이 수신 메시지 처리기 스크립트에서 Mirth.Code에 의해 문자열로 변환 XML.But으로 객체는 다음과 같습니다 방법에 들어오는 메시지를 전달하는 것이 showi이
// Modify the message variable below to pre process data
logger.info("incoming data "+message);
var object = new Packages.coms.controller.JAXBMarshalling();
object.marshallJavaObjectToXml(message);
return message;
동안 메소드가 사용자 정의 java 객체를 메소드 매개 변수로 기대하기 때문에 메소드가 존재하지 않지만 String으로 처리됩니다. 방법은 다음과 같습니다 전달되는 객체
public void marshallJavaObjectToXml(OrderDetails orderDetails) {
JAXBContext jaxbContext;
try {
File file = new File(
"C:\\Program Files (x86)\\Mirth Connect\\conf\\xml\\xmlrepresentation.xml");
jaxbContext = JAXBContext.newInstance(OrderDetails.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(orderDetails, file);
jaxbMarshaller.marshal(orderDetails, System.out);
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
클래스는 다음과 같습니다
나는이 두 클래스와 jar 파일을 생성 환희의 맞춤 LIB 폴더에 넣어 가지고@XmlRootElement
public class OrderDetails implements Serializable{
private static final long serialVersionUID = -4617153110762983450L;
private Long mrn;
private Long orderNo;
private Long patientId;
private Long orderId;**strong text**
private Long encounterId;
}
. 어떻게하면 preprocessor
Mirth의 스크립트에서 실제 자바 객체를 얻을 수 있습니까? Mirth 버전 2.2.1.5861