سؤال

أقوم بتطوير خدمة وكيل باستخدام خدمة ويب صابونية تقوم بإجراء تحويل الصابون إلى الراحة، ويتم إرسال الرسالة إلى servlet الذي يستجيب بسلسلة بتنسيق مسطح (وليس xml)، مجرد سلسلة من الأحرف مثل

 OIUW|ECHNOWE|RFHQWIUE|FBPQW|EFHAO|IEFH

أنا أستدعي باستخدام SOAP UI وأحصل على هذه الاستجابة بشكل جيد، والآن أرغب في تلقيها "بتنسيق SOAP"، مع تغليف الرسالة في شكل صابون: الجسم، لقد حاولت باستخدام XSLT ومع وسيط PayloadFactory، ولكن بمجرد أن أستخدم أيًا منها (حتى لو لم أفعل شيئًا) أحصل على

[2014-07-31 09:30:41,847] ERROR - RelayUtils Error while building Passthrough stream
org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at     [row,col]:[1,1]
Message: Content is not allowed in prolog.

ماذا أفعل الخطأ ؟كيف يمكنني تحقيق تحويل الرسالة دون هذا الاستثناء؟

شكرًا لك!

تحديث: وكيلي حسب طلب راثا

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
   name="SCL3"
   transports="http"
   startOnLoad="true"
   trace="disable">
<description/>
<target>
  <inSequence>
     <log level="custom">
        <property name="MyTrace" value="--- REQUEST ---"/>
     </log>
     <log level="full"/>
     <property name="REST_URL_POSTFIX"
               value="x4?msg=x4|0003|0000000021|0|0|0400002081020224849"
               scope="axis2"
               type="STRING"/>
     <property name="HTTP_METHOD" value="GET" scope="axis2" type="STRING"/>
     <property name="SOAPAction" scope="default" action="remove"/>
     <header name="Action" scope="default" action="remove"/>
     <send>
        <endpoint>
           <address uri="http://localhost:8087/X4" format="pox"/>
        </endpoint>
     </send>
  </inSequence>
  <outSequence>
     <log level="custom">
        <property name="MyTrace" value="--- RESPONSE ---"/>
     </log>
     <property name="ContentType"
               value="application/soap+xml"
               scope="transport"
               type="STRING"/>
     <property name="messageType"
               value="application/soap+xml"
               scope="transport"
               type="STRING"/>
     <payloadFactory media-type="xml">
        <format>
           <a xmlns="">$1</a>
        </format>
        <args>
           <arg value="my value"/>
        </args>
     </payloadFactory>
     <send/>
  </outSequence>
  </target>
  <publishWSDL uri="file:/C:/wso2/wso2esb-4.8.1/repository/workspaces/myproject/SCL3.wsdl"/>
</proxy>
هل كانت مفيدة؟

المحلول

لقد رأيت أن servlet الخاص بي كان يضبط نوع المحتوى على "نص/xml" بدلاً من "نص/عادي"، وقمت بتغييره إلى "نص/عادي" وكل شيء يعمل بشكل جيد الآن.

لذلك أستنتج أن رسالة الخطأ

"المحتوى غير مسموح به في برولوغ"

يعني في الواقع

"غير متوقع نوع المحتوى"

نصائح أخرى

عندما تتابع التكوين المهوه ما يطبع السجل الخاص بك؟

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top