2011-12-02 156 views
3

我有以下代碼:

@WebMethod 
public String replaceEnvironment(String someVar) { 
    return someVar; 
} 

當我試圖發送一個消息包含${something}子字符串,我的字符串unmashalling後截斷:${something}子串dissappeared。這種行爲的原因是什麼?我需要有與我在replaceEnvironment方法中發送的字符串相同的字符串。

P.S.我在我的項目中不使用像VelocityFreemaker這樣的庫。

SOAP示例。

請求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:ws="http://ws.test.net/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
    <ws:replaceEnvironment> 
     <!--Optional:--> 
     <arg0>test ${test} test</arg0> 
    </ws:replaceEnvironment> 
    </soapenv:Body> 
</soapenv:Envelope> 

響應:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
    <S:Body> 
     <ns2:replaceEnvironmentResponse xmlns:ns2="http://ws.test.net/"> 
      <return>test test</return> 
     </ns2:replaceEnvironmentResponse> 
    </S:Body> 
</S:Envelope> 

感謝。

+0

請在這裏發表有關WSDL的更多信息。(規則) – Oyeme

+0

試的String.Format()? – aishwarya

回答

3

你有沒有機會用soapUI進行測試呼叫?

這給請求中的$ {xxx}序列賦予特殊含義,用相應的soapUI屬性的值替換它們。

如果是這種情況,也許你可以使用「&#3 6」; (不包含空格或引號),而不是美元,然後查看soapUI是否會忽略您的序列並將其發送到您的後端代碼。

HTH

+1

哦...這真的是soapUI相關的行爲。我甚至不知道在沒有soapUI的情況下檢查我的WS。謝謝! – Artem