Xpathbase64DecodeがWso2Esb4.8.1で機能しない

エイドリアン・レイロ・フェルナンデス

デコードする必要のあるbase64ストリームを受信して​​います。私はいくつかの研究をしていますが、行き詰まっています、これは私のコードです:

<outSequence>
     <property name="cadena" value="Hola mundo" scope="default" type="STRING"/>
     <property name="cadena64"
               expression="base64Encode(get-property('cadena'))"
               scope="default"
               type="STRING"/>
     <property 
               name="cadenaASCII"
               expression="syn:base64Decode(syn:get-property('cadena64'))"
               scope="default"
               type="STRING"/>
     <payloadFactory media-type="json">
        <format>
          {"cadena":"$1",
            "cadena64":"$2",
            "cadenaASCII":"$3",
          }
        </format>
        <args>
           <arg evaluator="xml" expression="get-property('cadena')"/>
           <arg evaluator="xml" expression="get-property('cadena64')"/>
           <arg evaluator="xml" expression="get-property('cadenaASCII')"/>
        </args>
     </payloadFactory>
     <send/>
  </outSequence>

行のコメントを解除してXpath2.0を有効にしました

synapse.xpath.dom.failover.enabled=true

$ ESB_HOME / repository / confディレクトリにあります(そしてサービスを再起動します)。

これは私が得るエラーです:

Evaluation of the XPath expression syn:base64Decode(syn:get-property('cadena64')) resulted in an error  More TID[-1234] [ESB] [2019-03-04 19:27:23,359] ERROR {org.apache.synapse.util.xpath.SynapseXPath} - Evaluation of the XPath expression syn:base64Decode(syn:get-property('cadena64')) resulted in an error net.sf.saxon.xpath.XPathEvaluator.compile(XPathEvaluator.java:378) org.apache.synapse.util.xpath.SynapseXPath.evaluateDOMXPath(SynapseXPath.java:529) org.apache.synapse.util.xpath.SynapseXPath.stringValueOf(SynapseXPath.java:364) org.apache.synapse.mediators.builtin.PropertyMediator.getResultValue(PropertyMediator.java:302) org.apache.synapse.mediators.builtin.PropertyMediator.mediate(PropertyMediator.java:96) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:268) org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:225) org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) 
マーティン・ハルド

4.8.1ではエンコードのみがサポート/実装されていると思います。それ以外の場合は、すでに述べたように、オプションはesbをアップグレードすることです。以下は4.8.1で私のために働いた

   <property name="contentBase64" expression="//t:Content" scope="default" type="STRING"/>

<script language="js"><![CDATA[importPackage(Packages.org.apache.commons.codec.binary); var log = mc.getServiceLog();      log.info("1");var c = mc.getProperty("contentBase64");log.info("2:"+c);var bc = Base64.decodeBase64(c);log.info("3:"+bc);  var result = "";  for(var i = 0; i                                                                                                                               
                                             < bc.length; ++i){     result+= (String.fromCharCode(bc[i]));  }   log.info("result:"+result);      mc.setProperty("contentDecoded", result);]]></script>

デコードされたコンテンツには、プロパティ「contentDecoded」でアクセスできます。

お役に立てば幸いです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

DNSがK8の1つのデプロイで機能しない

分類Dev

AWS EC2 で Tomcat 8 HTTPS 接続が機能しない

分類Dev

IE8でBabel 6.0.20モジュール機能が機能しない

分類Dev

PHPOCI8拡張機能がPHP764ビットで機能しない

分類Dev

$ .getScriptが機能しない(IE8)

分類Dev

phputf-8が機能しない

分類Dev

iOS8UILocalNotificationが機能しない

分類Dev

PHPUTF-8が機能しない

分類Dev

8つの自己署名証明書のうちの1つが機能しないのはなぜですか?

分類Dev

addEventListenerがIE8で機能しない

分類Dev

Spring Boot JWT CorsがAngular 8で機能しない

分類Dev

Grails-Spring SecurityがMysql 8で機能しない

分類Dev

位置情報サービスがiOS 8で機能しない

分類Dev

NSUserDefaultsstandardUserDefaultsがiOS8で機能しない

分類Dev

IonicFrameworkで使用するとCharsetUTF8が機能しない

分類Dev

Angular 5アプリがios8で機能しない(Browserstack)

分類Dev

.modal()関数がAngular8で機能しない

分類Dev

Select ControlBindingがAngular8で機能しない

分類Dev

IE8で正規表現が機能しない

分類Dev

IE8jQuery送信がフォームで機能しない

分類Dev

WifiアダプターがWindows8で機能しない

分類Dev

Intel Ivy Bridge GPUOpenCLがWindows8で機能しない

分類Dev

phonecallTaskがWindowsPhone8で機能しない

分類Dev

JavaFXTreeViewがJava8で機能しない

分類Dev

Windows Phone8でのパンが機能しない

分類Dev

ハンマーjsがWindowsPhone8で機能しない

分類Dev

XAML / W8で戻るボタンが機能しない

分類Dev

Phonegap / Cordovaがios8で機能しない

分類Dev

JSliタグonclickがIE8で機能しない

Related 関連記事

ホットタグ

アーカイブ