문제

나는 SOAP을 수행하는 SOAP를 수행하는 SOAP 웹 서비스를 통해 프록시 서비스를 개발하고 있으며, 메시지는 평면 형식 (XML이 아닌)의 문자열로 문자열로 보내는,

와 같은 문자의 유동성으로 메시지가 전송됩니다.
 OIUW|ECHNOWE|RFHQWIUE|FBPQW|EFHAO|IEFH
.

나는 SOAP UI로 호출 하고이 응답을 잘 얻고, 이제는 "SOAP 형식"에서 그것을 받고 싶습니다.이 메시지를 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이 "text / plain"대신 "text / xml"에 콘텐츠 유형을 설정했음을 알았 으면, 나는 그것을 "텍스트 / 일반"으로 변경했고 모든 것이 지금 잘 작동하고 있습니다.

오류 메시지

"콘텐츠는 프롤로그에서 허용되지 않습니다."

은 실제로 의미

를 의미합니다

" 예기치 않은 콘텐츠 유형"

다른 팁

로그 인쇄가 무엇인지 다음과 같이 다음과 같이하십시오.

<outSequence>
     <log level="full">
        <property name="MyTrace" value="--- RESPONSE ---"/>
     </log>


     <send/>
  </outSequence>
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top