2011-12-02 178 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