WEB开发网
开发学院软件开发Java 使用 WebSphere Integration Developer 提高效率 阅读

使用 WebSphere Integration Developer 提高效率

 2009-09-30 00:00:00 来源:WEB开发网   
核心提示: 为了说明为什么这会有所帮助,请考虑以下错误:清单 3. WebSphere Integration Developer 接口问题cvc-attribute.3:Thevalue'myObject:Report'ofattribute'type'onelement&

为了说明为什么这会有所帮助,请考虑以下错误:

清单 3. WebSphere Integration Developer 接口问题

cvc-attribute.3: The value 'myObject:Report' of attribute 'type' on element 'xsd:element' 
is not valid with respect to its type, 'QName'. 

为了解决这个问题,您的第一个反映可能是确定工作区中的哪个文件导致了错误。这在 Eclipse IDE 中通常相当明显,因为会用小叉标记出错误的位置。在本例中,出问题的是一个名为 SimpleInterface 的接口。双击文件后,就会打开接口编辑器,如图 10 中所示。

图 10. 接口编辑器

使用 WebSphere Integration Developer 提高效率

图片看不清楚?请点击这里查看原图(大图)。

正如所您看到的,接口编辑器并没有提供调试问题的方法。为了真正了解其根源,您需要查看接口的基础 XML 表示形式,即一个 *.wsdl XML 文档。通过右键单击接口,并选择 Open With => XML Source Page Editor,可以对 XML 进行编辑。SimpleInterface.wsdl 的内容如下所示:

清单 4. SimpleInterface.wsdl

<?xml version="1.0" encoding="UTF-8"?> 
<wsdl:definitions xmlns:myObjects="http://MyLibrary/MyBusinessObjects" [1] 
xmlns:tns="http://MyLibrary/SimpleInterface" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SimpleInterface" 
targetNamespace="http://MyLibrary/SimpleInterface"> 
 <wsdl:types> 
  <xsd:schema targetNamespace="http://MyLibrary/SimpleInterface" 
xmlns:bons1="http://MyLibrary" 
xmlns:tns="http://MyLibrary/SimpleInterface" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
      <xsd:import namespace="http://MyLibrary/MyBusinessObjects" 
schemaLocation="Report.xsd"/> 
      <xsd:element name="checkCredit"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="code" nillable="true" type="xsd:string"/> 
     </xsd:sequence> 
    </xsd:complexType> 
   </xsd:element> 
   <xsd:element name="checkCreditResponse"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="report" nillable="true" type="myObject:Report"/> [2] 
     </xsd:sequence> 
    </xsd:complexType> 
   </xsd:element> 
  </xsd:schema> 
 </wsdl:types> 
  <wsdl:message name="checkCreditRequestMsg"> 
  <wsdl:part element="tns:checkCredit" name="checkCreditParameters"/> 
 </wsdl:message> 
  <wsdl:message name="checkCreditResponseMsg"> 
  <wsdl:part element="tns:checkCreditResponse" name="checkCreditResult"/> 
 </wsdl:message> 
  <wsdl:portType name="SimpleInterface"> 
  <wsdl:operation name="checkCredit"> 
   <wsdl:input message="tns:checkCreditRequestMsg" name="checkCreditRequest"/> 
   <wsdl:output message="tns:checkCreditResponseMsg" name="checkCreditResponse"/> 
  </wsdl:operation> 
 </wsdl:portType> 
</wsdl:definitions> 

由于清单 3 中的错误提到了“myObject:Report”,因此可立即定位到标记为 [2] 的代码行。Report 是一种复杂 XML Schema 类型,在另一个文件中定义(可能名为 Resport.xsd)。为了引用外部复杂类型,将使用命名空间标识符。在标记为 [2] 的代码行,其命名空间标识符为 myObject。不过,如果查看标记为 [1] 的代码行,会发现声明 myObjects 时使用了一个额外的字符“s”。对二者中的任意一个进行修改,使其保持一致,即可消除此错误。

正如您所看到的,如果不查看 *.wsdl 文件,调试上述问题可能会要求完全重新创建相应的 SCA 接口组件。通过查看基础 XML 表示形式,可更为高效地修复此问题。WebSphere Process Server 和 ESB 运行时可识别 WebSphere Integration Developer 内构建的组件的基础 XML 文件。事实上,可以将基础 XML 文件视为运行时执行的指令。与尝试在 WebSphere Integration Developer 的图形级别进行调试相比,如果可以在 XML 级别调试问题,则要高效得多。

结束语

我们都处于 Jane 的位置。几乎很少有 IT 从业人员花时间通过阅读最新的红皮书、产品指南和信息中心文档来了解如何利用开发工具获得最高的效率。另外,自己动手实践通常也会有意思得多。希望本文中提供的信息能帮助您快速而安全地实现高效率。

上一页  3 4 5 6 7 8 

Tags:使用 WebSphere Integration

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接