You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过SOAP在Polarion创建Workitem报ClassCastException问题咨询

Polarion SOAP 接口创建工作项问题说明

我正在尝试通过SOAP Web Services在Polarion中创建工作项,使用的是TrackerWebService WSDL,不清楚请求所需的正确内容格式。

请求示例

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:trac="http://ws.polarion.com/TrackerWebService-impl"
    xmlns:trac1="http://ws.polarion.com/TrackerWebService-types"
    xmlns:proj="http://ws.polarion.com/ProjectWebService-types"
    xmlns:typ="http://ws.polarion.com/types">
    <soapenv:Header>
        <ns1:sessionID soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
            soapenv:mustUnderstand="0" xmlns:ns1="http://ws.polarion.com/session"
            >........sessionId.........</ns1:sessionID>
    </soapenv:Header>
    <soapenv:Body>
        <trac:createWorkItem>
            <trac:content>
                <trac1:description>
                        <typ:type>text/html</typ:type>
                        <typ:content>test</typ:content>
                        <typ:contentLossy>false</typ:contentLossy>
                </trac1:description>
                <trac1:project>
                    <proj:id>....projectId....</proj:id>
                </trac1:project>
                <trac1:type>
                    <trac1:id>testcase</trac1:id>
                </trac1:type>
            </trac:content>
        </trac:createWorkItem>
    </soapenv:Body>
</soapenv:Envelope>

报错响应

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Server.userException</faultcode>
         <faultstring>java.lang.ClassCastException</faultstring>
         <detail>
            <ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">java.lang.ClassCastException</ns1:stackTrace>
            <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">...server hostname....</ns2:hostname>
            <ns3:isRuntimeException xmlns:ns3="http://xml.apache.org/axis/">true</ns3:isRuntimeException>
         </detail>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

待解答疑问

  • 是否需要传递所有XML元素,即使对应的取值为空?
  • 不清楚'Unresolvable'属性的作用,也没有找到相关说明文档。
  • 什么场景下需要指定subterra uri,什么场景下可以省略该参数?
  • 即使我指定了该uri,也会抛出另一个错误,提示该URI不是normId。

问题解答

  1. 是否需要传递所有XML元素,即使对应的取值为空?
    不需要传递所有元素,仅需传递必填字段对应的元素即可,Polarion非必填字段为空时可以直接省略。你当前返回的ClassCastException报错,核心原因是createWorkItem接口要求工作项的title字段为必填项,你的现有请求中缺少title节点导致服务端类型转换异常。如果是允许为空的非必填字段,不需要显式传递空值元素,直接省略即可。

  2. 不清楚'Unresolvable'属性的作用,也没有找到相关说明文档。
    Unresolvable是Polarion对象的内置标记属性,不需要用户在请求中主动设置。当请求中关联的对象(比如指定的经办人、关联的其他工作项)在系统中不存在、或者当前会话账号没有权限访问该对象时,Polarion会自动将该关联对象标记为Unresolvable,正常请求时直接忽略该属性即可。

  3. 什么场景下需要指定subterra uri,什么场景下可以省略该参数?
    subterra uri是Polarion内部用于唯一标识对象的资源定位符,仅当你需要修改已存在的Polarion对象、或者关联系统中已存在的其他对象时才需要传递该参数。如果是新建对象(比如当前创建新工作项的场景),不需要传递subterra uri,直接传递对应对象的id属性即可。

  4. 即使我指定了该uri,也会抛出另一个错误,提示该URI不是normId。
    normId是Polarion要求的标准化subterra uri格式,统一格式为subterra:data-service:objects:/default/${项目ID}/${对象类型}${对象ID},传递的URI不符合该格式要求就会触发该错误。你当前是新建工作项场景,不需要传递该参数,直接删除请求中的subterra uri字段即可避免该报错。


内容的提问来源于stack exchange,提问作者Thomas Scheibelhofer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 22:48:03