2013-12-19 3 views
0

smooks 액션과 freemarker 유혹을 사용하는 여러 네임 스페이스가 포함 된 SOAP xml 요청을 작성하려고합니다. 다음은 jboss-esb.xml에있는 코드 조각이며 smooks-upgraded-right-now-query.xml은 웹 서비스에 대한 SOAP 클라이언트 요청을 작성하는 템플릿 파일입니다. 제이 보스 - esb.xml<wsse : Password> 요소를 esb 메시지에 출력 할 수 없습니다.

<action class="org.jboss.soa.esb.smooks.SmooksAction" name="create-right-now-details-query"> 
<property name="smooksConfig" value="/smooks/smooks-upgraded-right-now-query.xml"/> 
<property name="resultType" value="STRING" /> 
</action> 
<action class="org.jboss.soa.esb.actions.SystemPrintln" name="printMessageRequest"> 
<property name="message" value="GetInfoFromRightNow before request"/> 
<property name="printfull" value="true"/> 
</action> 

다음

smooks 업그레이드 - 오른쪽 지금-query.xml입니다 smooks이 업그레이드를 오른쪽 - 지금-query.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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"> 
    <params> 
     <param name="inputType">input.java</param> 
     <param name="stream.filter.type">SAX</param> 
     <param name="input.java" type="input.type.actived">com.ws.custom.Update</param> 
    </params> 

<ftl:freemarker applyOnElement="#document"> 

<ftl:template><![CDATA[<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v11="urn:basews.customws.com/v1_2" xmlns:v12="urn:objectws.customws.com/v1_2"> 
    <soapenv:Header> 
     <ns7:ClientInfoHeader soapenv:mustUnderstand="0" xmlns:ns7="urn:messages.ws.customws.com/v1_2"> 
     <ns7:AppID>Appid01</ns7:AppID> 
     </ns7:ClientInfoHeader> 
     <wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
     <wsse:UsernameToken> 
      <wsse:Username>user</wsse:Username> 
      <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password> 
     </wsse:UsernameToken> 
     </wsse:Security> 
    </soapenv:Header> 
</soapenv:Envelope>]]></ftl:template> 

    <param name="rootElementName">Envelope</param> 
    <param name="messageType">XML</param> 

</ftl:freemarker> 


<resource-config selector="#document"> 
<resource>org.milyn.delivery.DomModelCreator</resource> 
</resource-config> 

</smooks-resource-list> 

위에서 볼 수 있듯이 나는 일반 텍스트를 포함하는 SOAP 헤더를 작성하고 있습니다. 액션 파이프 라인에서 이전 메시지의 입력을 읽지는 않습니다.

<wsse:Password> 요소가 위 템플릿에서 제거 된 경우에만 SystemPrintln 작업을 사용하여이 SOAP 헤더를 인쇄 할 수 있습니다. xslt 템플릿을 사용하는 경우에도 이런 경우가 발생했습니다. 나는이 암호 요소가 smooks 파서에 의해 오해 된 것인지 이해하지 못합니다.

내가 로그에서 볼 수있는 유일한 유용한 메시지는 어떤 단서 감사 [org.milyn.delivery.AbstractParser] (pool-96-thread-1:) XMLReader property 'http://xml.org/sax/properties/lexical-handler' not recognized by XMLReader 'org.milyn.delivery.java.XStreamXMLReader'.

입니다.

답변

관련 문제