web-services - Axis2 中 POJO 参数中的空格编码

标签 web-services tomcat apache-axis

我创建了一个非常简单的服务,它只是将一些文本回显到控制台。该服务只是一个带有方法 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 中使用了一个 servlet 过滤器,例如过滤 IP 地址,在那里我可以看到 myMessage 参数看起来没问题,没有 + 号。

最佳答案

事实证明,问题实际上出在 Axis2 本身。我不太确定,但我使用的版本是 2009 年 10 月发布的 1.5.1 版。令我烦恼的是我没有发现任何关于它的错误报告。可能是它很快就修复了,我很不幸。

升级到最新版本的 Axis2 解决了这个问题。

关于web-services - Axis2 中 POJO 参数中的空格编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14170634/

相关文章:

eclipse - 在 eclipse 下使用 Tomcat 5.5 强制类路径优先级

java - 一个很好的 java (tomcat) SOAP 库

php - PHP SoapServer 是否受最大执行时间影响?

java - 适用于 Android 的 SOAP 客户端

android - 如何获取listview中选中项的index和textview?

java - 添加javamail代码后tomcat server 7.0不启动

Tomcat 上的 GWT 调用 Axis2 不起作用

java - 获取 java.net.SocketTimeoutException : connect timed out error

javascript - 轻松查看什么 javascript 代码称为 Web 服务

java - 通过单独使用/分析给定 URL 获取示例请求/响应