テキストをコンソールにエコーするだけの非常に単純なサービスを作成しました。このサービスは、単一のパラメーターを持つ、メソッド echo を持つ単なる POJO です。
public class EchoTest
{
public void echo(String myMessage)
{
System.out.println(myMessage);
}
}
これはservices.xmlからのものです:
<service name="EchoTest">
<description>Echo test</description>
<parameter name="ServiceClass">EchoTest</parameter>
<operation name="echo">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
さらに、非常に単純な HTML フォームを使用してデータをサービスに送信します。
<html>
<body>
<form method="post" target="responseFrame" action="../../services/EchoTest/echo">
<input name="myMessage" type="text">
<input value="Send" type="submit"/>
</form>
<iframe width=500 height=500 name="responseFrame"></iframe>
</body>
</html>
私が抱えている問題は、スペースが「+」に置き換えられることです。たとえば、次のようなメッセージを入力するとします。
Hey you & you - # % @
結果は次のとおりです。
Hey+you+&+you+-+#+%+@
何らかの形でエンコードする必要がありますか、それともこのように動作すべきではありませんか? それとも設定の問題でしょうか?Tomcat を Web コンテナーとして使用しています。参考までに、Tomcat でサーブレット フィルターを使用して、たとえば IP アドレスをフィルター処理すると、myMessage パラメーターに + 記号がなく、問題ないように見えます。