如何解决通过LYO
我正在尝试使用LYO(org.eclipse.lyo.clients:oslc-java-client:2.4.0
)通过OSLC从DOORS中读取需求并将其解析为reqif。我使用此请求成功读取了Requirement
对象:
String requirementURL = http://localhost:8080/dwa/rm/urn:rational::1-5efc6f9a4ff877cf-O-2-00000100;
ClientResponse requirementResponse = oslcOauthClient.getResource(requirementURL,OslcmediaType.APPLICATION_RDF_XML);
Requirement requirement = requirementResponse.getEntity(Requirement.class);
这样做的时候,我在尝试解析属性值时遇到了一个问题。从DOORS角度来看,它们位于requirement.extendedProperties[x].value
中。但是,有一个问题。 reqif标准定义了7种必须遵循的属性值类型,例如ATTRIBUTE-VALUE-INTEGER
,ATTRIBUTE-VALUE-DATE
等。现在,requirement.extendedProperties[x].value
中包含的对象大部分是清晰可映射的类型,例如int
或date
。但是,在某些情况下,它们是URI
。这是此时出现的一些示例或URI:
http://localhost:8080/dwa/rm/urn:rational::1-5efc6f9a4ff877cf-M-00000100/types/attrDef-1025#1
http://localhost:8080/dwa/rm/acp/urn:rational::1-5efc6f9a4ff877cf-F-00000000/gFgcK1req0%252BQ5gE6yE5YsEZZcDI%253D%250A
http://localhost:8080/dwa/rm/urn:rational::1-5efc6f9a4ff877cf-M-00000100/types/attrDef-10#1
现在 I 了解这些URI指向DOORS资源。第一个和第三个是Enumeration值引用,我不知道第二个是什么。但是,据我了解,我应该能够使用这些URI访问相应的DOORS资源,然后能够查看它们以确定它们是什么,从而确定它们的用途。解析它们。
但是,这是当一切都失败的时候,因为当我尝试发出此请求时:
String uriValue = http://localhost:8080/dwa/rm/urn:rational::1-5efc6f9a4ff877cf-M-00000100/types/attrDef-1025#1;
ClientResponse response = oslcOauthClient.getResource(uriValue,OslcmediaType.APPLICATION_RDF_XML);
... response.entity
的对象类型为EofSensorInputStream,而不是包含可用实体的响应,而我期望类似 EnumValue
之类的东西。
因此,这是一个问题:基于requirement.extendedProperties[x].value
中包含的URI,我如何才能检索它指向的资源以确定我必须使用的属性类型?显然,oslcOauthClient.getResource
是错误的使用方式,或者我以错误的方式使用了它。也许第二个参数在这种情况下是错误的(即使它可以用于检索需求),但后来我不知道什么是正确的参数或如何弄清楚。
或使其更短:
因此,我发现此属性的值为URI http://localhost:8080/dwa/rm/urn:rational::1-5efc6f9a4ff877cf-M-00000100/types/attrDef-1025#1
。
...现在是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。