안녕하세요, StackOverflow 사용자FreeMarker를 사용하여 Smooks를 사용하여 Java to XML (SOAP)
현재 SOA 프로젝트를 진행 중입니다. 어플리케이션 서버로서 JBoss ESB 4.11이 배치 된 JBoss 5.1을 사용합니다.
나는 클라이언트로부터 SOAP 메시지를 수신하고 SOAP 메시지로 응답을 보내는 웹 서비스를 구현하려고한다.
SOAP 메시지 요청이이 웹 서비스에 수신되면이 요청을 처리 할 수 있도록 Smooks를 사용하여이 메시지를 Java 객체로 변환합니다.
메신저 처리가 끝나면 자바 객체를 Smooks로 다시 XML (SOAP 응답)로 변환하려고합니다.
Java에서 XML 로의 변환에 전념하고 있습니다. jboss-esb.xml
파일
내 액션 체인은 다음과 같다 다음 processRequest
작업이 incomming 요청을 처리 완료
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"
xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.4.xsd">
<core:filterSettings type="SAX" defaultSerialization="false"/>
<resource-config selector="example.JavaObjectMessage">
<resource>org.milyn.delivery.DomModelCreator</resource>
</resource-config>
<ftl:freemarker applyOnElement="example.JavaObjectMessage">
<!--<ftl:template>/freemarker/acknowledge.flt</ftl:template> -->
<ftl:template>
<!--
<sg:Message xmlns:sg="urn:http://example">
<sg:MessageType>${.vars[example.JavaObjectMessage].messageType}</sg:MessageType>
</sg:Message >
-->
</ftl:template>
</ftl:freemarker>
</smooks-resource-list>
후에는 attatch합니다 : 두 번째 SmooksAction의
<services>
<service name="myWS" description="A Service" category="WS">
<listeners>
<jms-listener name="myListener" busidref="myChannel"/>
</listeners>
<actions mep="RequestResponse" inXsd="in.xsd" outXsd="out.xsd">
<!-- Transform incomming SOAP Message into JavaBean objects -->
<action name="xml2java-transform" class="org.jboss.soa.esb.smooks.SmooksAction">
<property name="smooksConfig" value="/smooks/smooks-config-soap2java.xml"/>
<property name="resultType" value="JAVA" />
</action>
<action name="processRequest" class="example.soa.ProcessRequest" process="process">
<property name="config" value="val"/>
</action>
<!-- Transform outgoing JavaBean objects into SOAP Message -->
<action name="java2xml-transform" class="org.jboss.soa.esb.smooks.SmooksAction">
<property name="smooksConfig" value="/smooks/smooks-config-java2soap.xml"/>
<property name="reportPath" value="/smooks/report.html"/>
<property name="resultType" value="STRING" />
</action>
</actions>
</service>
</services>
내 smooksConfig
example.JavaObjectMessage
클래스. 따라서 두 번째 SmooksAction은이 객체에 액세스 할 수 있습니다.
제 질문은 : smooksConfig
의 'example.JavaObjectMessage'속성에 어떻게 액세스 할 수 있습니까? 그리고 flt:tamplate
섹션에서 applyOnElement
은 무엇을 의미합니까?
이미 Smooks 사용자 가이드를 읽었으며 JBoss 커뮤니티에서도이 질문을 게시했습니다.
도움이되었습니다.
감사