【问题标题】:axis2: content length must be specifiedaxis2:必须指定内容长度
【发布时间】:2018-12-29 23:38:09
【问题描述】:

我正在使用axis2 编写一个SOAP 服务客户端。我用wsdl2java生成了客户端代码,然后我尝试

Request req = new Request();
req.setParameter("XXX");

ServiceStub stub = new ServiceStub();                                     
stub.remoteService(req);            

在运行时,我得到一个AxisFaultContent length must be specified

知道出了什么问题或如何指定内容长度吗?

【问题讨论】:

  • 您能否提供更多关于您尝试连接的服务类型以及代码本身的描述
  • @Gigaquad:问题已编辑。这是一个 SOAP 服务,存根由 wsdl2java 生成

标签: java axis2 webservice-client


【解决方案1】:

好的,我终于明白了。根据this 的说法,这是一个众所周知的轴问题。

使用axis2,我将以下内容添加到我的服务存根中

_operationClient.getOptions().setProperty(HTTPConstants.CHUNKED, false);

效果很好!

【讨论】:

    【解决方案2】:

    如果您默认禁用分块,我相信 Axis2 将在 HTTP 标头中包含内容长度值

    根据XML RPC specifications

    标题要求

    标题第一行中的 URI 格式未指定。例如,如果服务器只处理 XML-RPC 调用,它可以是空的,一个单斜杠。但是,如果服务器正在处理混合传入的 HTTP 请求,我们允许 URI 帮助将请求路由到处理 XML-RPC 请求的代码。 (在示例中,URI 是 /RPC2,告诉服务器将请求路由到“RPC2”响应者。)

    必须指定用户代理和主机。

    Content-Type 是 text/xml。

    必须指定 Content-Length 且必须正确

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 2011-12-08
      • 2017-09-11
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多