2012-07-13 3 views
0

나는 서비스에서 텍스트/일반 내용을 반환합니다. 응답 메시지와 같은 : ESB4.0.3에서, 응답이 같은입니다 그러나 RESP0Success ".. 내가 axis2.xml에서 빌더와 포맷을 설정text/plain에서 text/xml로 응답을 변경하는 방법

<text xmlns="http://ws.apache.org/commons/ns/payload">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;message&gt;&lt;MsgType&gt;RESP&lt;/MsgType&gt;&lt;ReturnCode&gt;0&lt;/ReturnCode&gt;&lt;ReturnMessage&gt;Success&lt;/ReturnMessage&gt;&lt;/message&gt; 
</text> 

그러나 아무 소용이

<messageBuilder contentType="text/plain"    
class="org.apache.axis2.format.PlainTextBuilder"/> 
<messageFormatter contentType="text/plain" 
class="org.apache.axis2.format.PlainTextFormatter"/> 

하는 anyxone 수 방법 axis2.xml에서 빌더와 포맷을 설정하는 말해 내 서비스 설정은 다음과 같습니다?

<proxy xmlns="http://ws.apache.org/ns/synapse" name="TextPlain" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
     <inSequence> 
     <property name="ContentType" value="text/plain" scope="axis2" /> 
     <log level="full" /> 
     </inSequence> 
     <outSequence> 
     <log level="full" /> 
     <property name="ContentType" value="text/plain" scope="axis2" /> 
     <send /> 
     </outSequence> 
     <endpoint> 
     <address uri="http://172.20.28.206:8080/AAAService/recieveMsg" format="pox"> 
     </address> 
     </endpoint> 
    </target> 
</proxy> 

답변

0

당신은 당신의 메시지의 ContentType을 지정해야합니다 t의 입력으로. 그는 HTTP가 비누 봉투와 몸을 포함 할 것이고, 당신의 내용은 그러한 태그 안에 포함되어있다.

이제 메시지의 유형이 text/plain 인 경우 PlainTextFormatter가이를 실제 텍스트로 변환하고 엔드 포인트로 보냅니다 (axis2.xml은 구성 일뿐입니다. 이제는 당신이이 줄이없는) 지금

을 PlainTextFormatter를 사용하려면 :

<property name="ContentType" value="text/plain" scope="axis2"/> 
+0

ContentType을 설정하면 새 서비스 구성을 볼 수 있습니다. 그러나 사용하지 않는 응답은 다음과 같습니다. <? xml version = "1.0"encoding = "UTF-8"? > > < < 메시지 헤더 > < transactionId는 > IAG.BOSS_QUERY_DATA </동작 코드 > <을 MsgType > RESP </1을 MsgType > > </transactionId는 > < 소인 > 2012-06-04 10시 45분 35초 </소인 > < 동작 코드 <ReturnCode/ReturnCode> <ErrorMessage> ?? </오류 메시지 > </메시지 > luohao

1

나는 같은 문제를 했어, 그때

<property name="messageType" value="text/plain" scope="axis2"/> 

을 설정하고 지금은 하시다 rks, URL에서 호출하면 텍스트 만 반환합니다.

<proxy xmlns="http://ws.apache.org/ns/synapse" name="RESTE" transports="http" statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
     <inSequence> 
     <log level="full"/> 
     </inSequence> 
     <outSequence> 
     <log level="full"/> 
     <property name="messageType" value="text/plain" scope="axis2"/> 
     <send/> 
     </outSequence> 
     <endpoint> 
     <address uri="http://10.15.21.189:8180/contadorServicos/ola-mundo"/> 
     </endpoint> 
    </target> 
    <parameter name="serviceType">proxy</parameter> 
    <description></description> 
</proxy> 

불행히도 Tryit 기능이 작동하지 않아 이제는 다음 오류가 발생합니다.

<parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">Erro no processamento de XML: formatação incorreta Posição: http://xxxxxxx/services/RESTE?tryit# Número da linha 1, coluna 221: 
    <sourcetext>&lt;TryitProxyError h:status='SOAP envelope error' xmlns:h='http://wso2.org/ns/TryitProxy'&gt;org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'r' (code 114) in prolog; expected '&lt;'at [row,col {unknown-source}]: [1,1]&lt;/TryitProxyError&gt; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^</sourcetext> 
</parsererror> 

p .: SOAPUI와 같은 다른 도구를 사용할 때 제대로 작동합니다.